home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / reviewed / volume01 / mawk / 1.1 / patch02d < prev    next >
Encoding:
Internet Message Format  |  1992-10-13  |  57.2 KB

  1. From: Mike Brennan <brennan@boeing.com>
  2. Subject: v02i031: mawk - (Ver. 1.1) An interpreter for the AWK language, Patch02d/4
  3. Newsgroups: comp.sources.reviewed
  4. Approved: csr@calvin.dgbt.doc.ca
  5.  
  6. Submitted-by: Mike Brennan <brennan@boeing.com>
  7. Posting-number: Volume 2, Issue 31
  8. Archive-name: mawk/patch02d
  9. Patch-To: mawk: Volume 1, Issue 50-68
  10.  
  11. #!/bin/sh
  12. # this is part.04 (part 4 of a multipart archive)
  13. # do not concatenate these parts, unpack them in order with /bin/sh
  14. # file Xparse.c continued
  15. #
  16. if test ! -r _shar_seq_.tmp; then
  17.     echo 'Please unpack part 1 first!'
  18.     exit 1
  19. fi
  20. (read Scheck
  21.  if test "$Scheck" != 4; then
  22.     echo Please unpack part "$Scheck" next!
  23.     exit 1
  24.  else
  25.     exit 0
  26.  fi
  27. ) < _shar_seq_.tmp || exit 1
  28. if test ! -f _shar_wnt_.tmp; then
  29.     echo 'x - still skipping Xparse.c'
  30. else
  31. echo 'x - continuing file Xparse.c'
  32. sed 's/^X//' << 'SHAR_EOF' >> 'Xparse.c' &&
  33. break;
  34. case 53:
  35. #line 322 "parse.y"
  36. { patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
  37. break;
  38. case 55:
  39. #line 327 "parse.y"
  40. { code1(_CAT) ; }
  41. break;
  42. case 56:
  43. #line 331 "parse.y"
  44. {  yyval.start = code_ptr ; code2(_PUSHD, yyvsp[0].ptr) ; }
  45. break;
  46. case 57:
  47. #line 333 "parse.y"
  48. { yyval.start = code_ptr ; code2(_PUSHS, yyvsp[0].ptr) ; }
  49. break;
  50. case 58:
  51. #line 335 "parse.y"
  52. { check_var(yyvsp[0].stp) ;
  53. X            yyval.start = code_ptr ;
  54. X            if ( is_local(yyvsp[0].stp) )
  55. X            { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
  56. X            else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
  57. X          }
  58. break;
  59. case 59:
  60. #line 343 "parse.y"
  61. { yyval.start = yyvsp[-1].start ; }
  62. break;
  63. case 60:
  64. #line 347 "parse.y"
  65. { yyval.start = code_ptr ; code2(_MATCH0, yyvsp[0].ptr) ; }
  66. break;
  67. case 61:
  68. #line 350 "parse.y"
  69. { code1(_ADD) ; }
  70. break;
  71. case 62:
  72. #line 351 "parse.y"
  73. { code1(_SUB) ; }
  74. break;
  75. case 63:
  76. #line 352 "parse.y"
  77. { code1(_MUL) ; }
  78. break;
  79. case 64:
  80. #line 353 "parse.y"
  81. { code1(_DIV) ; }
  82. break;
  83. case 65:
  84. #line 354 "parse.y"
  85. { code1(_MOD) ; }
  86. break;
  87. case 66:
  88. #line 355 "parse.y"
  89. { code1(_POW) ; }
  90. break;
  91. case 67:
  92. #line 357 "parse.y"
  93. { yyval.start = yyvsp[0].start ; code1(_NOT) ; }
  94. break;
  95. case 68:
  96. #line 359 "parse.y"
  97. { yyval.start = yyvsp[0].start ; code1(_UPLUS) ; }
  98. break;
  99. case 69:
  100. #line 361 "parse.y"
  101. { yyval.start = yyvsp[0].start ; code1(_UMINUS) ; }
  102. break;
  103. case 71:
  104. #line 366 "parse.y"
  105. { check_var(yyvsp[-1].stp) ;
  106. X             yyval.start = code_ptr ;
  107. X             code_address(yyvsp[-1].stp) ;
  108. X
  109. X             if ( yyvsp[0].ival == '+' )  code1(_POST_INC) ;
  110. X             else  code1(_POST_DEC) ;
  111. X           }
  112. break;
  113. case 72:
  114. #line 374 "parse.y"
  115. { yyval.start = yyvsp[0].start ; 
  116. X              if ( yyvsp[-1].ival == '+' ) code1(_PRE_INC) ;
  117. X              else  code1(_PRE_DEC) ;
  118. X            }
  119. break;
  120. case 73:
  121. #line 381 "parse.y"
  122. { if (yyvsp[0].ival == '+' ) code1(F_POST_INC ) ; 
  123. X             else  code1(F_POST_DEC) ;
  124. X           }
  125. break;
  126. case 74:
  127. #line 385 "parse.y"
  128. { yyval.start = yyvsp[0].start ; 
  129. X             if ( yyvsp[-1].ival == '+' ) code1(F_PRE_INC) ;
  130. X             else  code1( F_PRE_DEC) ; 
  131. X           }
  132. break;
  133. case 75:
  134. #line 392 "parse.y"
  135. { yyval.start = code_ptr ; 
  136. X          check_var(yyvsp[0].stp) ;
  137. X          code_address(yyvsp[0].stp) ;
  138. X        }
  139. break;
  140. case 76:
  141. #line 400 "parse.y"
  142. { yyval.ival = 0 ; }
  143. break;
  144. case 78:
  145. #line 405 "parse.y"
  146. { yyval.ival = 1 ; }
  147. break;
  148. case 79:
  149. #line 407 "parse.y"
  150. { yyval.ival = yyvsp[-2].ival + 1 ; }
  151. break;
  152. case 80:
  153. #line 412 "parse.y"
  154. { BI_REC *p = yyvsp[-4].bip ;
  155. X          yyval.start = yyvsp[-3].start ;
  156. X          if ( p-> min_args > yyvsp[-1].ival || p->max_args < yyvsp[-1].ival )
  157. X            compile_error(
  158. X            "wrong number of arguments in call to %s" ,
  159. X            p->name ) ;
  160. X          if ( p->min_args != p->max_args ) /* variable args */
  161. X              { code1(_PUSHINT) ;  code1(yyvsp[-1].ival) ; }
  162. X          code2(_BUILTIN , p->fp) ;
  163. X        }
  164. break;
  165. case 81:
  166. #line 423 "parse.y"
  167. {
  168. X        code1(_PUSHINT) ; code1(0) ;
  169. X        code2(_BUILTIN, yyvsp[0].bip->fp) ;
  170. X      }
  171. break;
  172. case 82:
  173. #line 431 "parse.y"
  174. { yyval.start = code_ptr ; }
  175. break;
  176. case 83:
  177. #line 435 "parse.y"
  178. { code2(_PRINT, yyvsp[-4].fp) ; yyval.start = yyvsp[-3].start ;
  179. X              if ( yyvsp[-4].fp == bi_printf && yyvsp[-2].ival == 0 )
  180. X                    compile_error("no arguments in call to printf") ;
  181. X              print_flag = 0 ;
  182. X              yyval.start = yyvsp[-3].start ;
  183. X            }
  184. break;
  185. case 84:
  186. #line 443 "parse.y"
  187. { yyval.fp = bi_print ; print_flag = 1 ;}
  188. break;
  189. case 85:
  190. #line 444 "parse.y"
  191. { yyval.fp = bi_printf ; print_flag = 1 ; }
  192. break;
  193. case 86:
  194. #line 447 "parse.y"
  195. { code1(_PUSHINT) ; code1(yyvsp[0].ival) ; }
  196. break;
  197. case 87:
  198. #line 449 "parse.y"
  199. { yyval.ival = yyvsp[-1].arg2p->cnt ; zfree(yyvsp[-1].arg2p,sizeof(ARG2_REC)) ; 
  200. X             code1(_PUSHINT) ; code1(yyval.ival) ; 
  201. X           }
  202. break;
  203. case 88:
  204. #line 453 "parse.y"
  205. { yyval.ival=0 ; code1(_PUSHINT) ; code1(0) ; }
  206. break;
  207. case 89:
  208. #line 457 "parse.y"
  209. { yyval.arg2p = (ARG2_REC*) zmalloc(sizeof(ARG2_REC)) ;
  210. X             yyval.arg2p->start = yyvsp[-2].start ;
  211. X             yyval.arg2p->cnt = 2 ;
  212. X           }
  213. break;
  214. case 90:
  215. #line 462 "parse.y"
  216. { yyval.arg2p = yyvsp[-2].arg2p ; yyval.arg2p->cnt++ ; }
  217. break;
  218. case 92:
  219. #line 467 "parse.y"
  220. { code1(_PUSHINT) ; code1(yyvsp[-1].ival) ; }
  221. break;
  222. case 93:
  223. #line 474 "parse.y"
  224. {  yyval.start = yyvsp[-1].start ; eat_nl() ; code_jmp(_JZ, (INST*)0) ; }
  225. break;
  226. case 94:
  227. #line 479 "parse.y"
  228. { patch_jmp( code_ptr ) ;  }
  229. break;
  230. case 95:
  231. #line 482 "parse.y"
  232. { eat_nl() ; code_jmp(_JMP, (INST*)0) ; }
  233. break;
  234. case 96:
  235. #line 487 "parse.y"
  236. { patch_jmp(code_ptr) ; patch_jmp(yyvsp[0].start) ; }
  237. break;
  238. case 97:
  239. #line 493 "parse.y"
  240. { eat_nl() ; BC_new() ; }
  241. break;
  242. case 98:
  243. #line 498 "parse.y"
  244. { yyval.start = yyvsp[-5].start ;
  245. X          code_jmp(_JNZ, yyvsp[-5].start) ; 
  246. X          BC_clear(code_ptr, yyvsp[-2].start) ; }
  247. break;
  248. case 99:
  249. #line 504 "parse.y"
  250. { eat_nl() ; BC_new() ;
  251. X                  yyval.start = yyvsp[-1].start ;
  252. X
  253. X                  /* check if const expression */
  254. X                  if ( code_ptr - 2 == yyvsp[-1].start &&
  255. X                       code_ptr[-2].op == _PUSHD &&
  256. X                       *(double*)code_ptr[-1].ptr != 0.0 
  257. X                     )
  258. X                     code_ptr -= 2 ;
  259. X                  else
  260. X          {
  261. X            code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
  262. X            code_ptr = yyvsp[-1].start ;
  263. X                    code2(_JMP, (INST*)0) ; /* code2() not code_jmp() */
  264. X          }
  265. X                }
  266. break;
  267. case 100:
  268. #line 524 "parse.y"
  269. X          INST *c_addr ; int len ;
  270. X
  271. X                  if ( yyvsp[-1].start != yyvsp[0].start )  /* real test in loop */
  272. X          {
  273. X            yyvsp[-1].start[1].op = code_ptr-(yyvsp[-1].start+1) ;
  274. X            c_addr = code_ptr ;
  275. X            len = code_pop(code_ptr) ;
  276. X            code_ptr += len ;
  277. X            code_jmp(_JNZ, yyvsp[0].start) ;
  278. X            BC_clear(code_ptr, c_addr) ;
  279. X          }
  280. X          else /* while(1) */
  281. X          {
  282. X            code_jmp(_JMP, yyvsp[-1].start) ;
  283. X            BC_clear(code_ptr, yyvsp[0].start) ;
  284. X          }
  285. X                }
  286. break;
  287. case 101:
  288. #line 547 "parse.y"
  289. X                  INST *cont_address = code_ptr ;
  290. X                  unsigned len = code_pop(code_ptr) ;
  291. X
  292. X                  code_ptr += len ;
  293. X
  294. X          if ( yyvsp[-2].start != yyvsp[0].start )  /* real test in for2 */
  295. X          {
  296. X                    yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
  297. X            len = code_pop(code_ptr) ;
  298. X            code_ptr += len ;
  299. X                    code_jmp(_JNZ, yyvsp[0].start) ;
  300. X          }
  301. X          else /*  for(;;) */
  302. X          code_jmp(_JMP, yyvsp[0].start) ;
  303. X
  304. X          BC_clear(code_ptr, cont_address) ;
  305. X
  306. X                }
  307. break;
  308. case 102:
  309. #line 568 "parse.y"
  310. { yyval.start = code_ptr ; }
  311. break;
  312. case 103:
  313. #line 570 "parse.y"
  314. { yyval.start = yyvsp[-1].start ; code1(_POP) ; }
  315. break;
  316. case 104:
  317. #line 573 "parse.y"
  318. { yyval.start = code_ptr ; }
  319. break;
  320. case 105:
  321. #line 575 "parse.y"
  322. X             if ( code_ptr - 2 == yyvsp[-1].start &&
  323. X                  code_ptr[-2].op == _PUSHD &&
  324. X                  * (double*) code_ptr[-1].ptr != 0.0
  325. X                )
  326. X                    code_ptr -= 2 ;
  327. X             else   
  328. X         {
  329. X           code_push(yyvsp[-1].start, code_ptr-yyvsp[-1].start) ;
  330. X           code_ptr = yyvsp[-1].start ;
  331. X           code2(_JMP, (INST*)0) ;
  332. X         }
  333. X           }
  334. break;
  335. case 106:
  336. #line 591 "parse.y"
  337. { eat_nl() ; BC_new() ; code_push((INST*)0,0) ; }
  338. break;
  339. case 107:
  340. #line 593 "parse.y"
  341. { eat_nl() ; BC_new() ; 
  342. X             code1(_POP) ;
  343. X             code_push(yyvsp[-1].start, code_ptr - yyvsp[-1].start) ;
  344. X             code_ptr -= code_ptr - yyvsp[-1].start ;
  345. X           }
  346. break;
  347. case 108:
  348. #line 604 "parse.y"
  349. { check_array(yyvsp[0].stp) ;
  350. X             code_array(yyvsp[0].stp) ; 
  351. X             code1(A_TEST) ; 
  352. X            }
  353. break;
  354. case 109:
  355. #line 609 "parse.y"
  356. { yyval.start = yyvsp[-3].arg2p->start ;
  357. X             code1(A_CAT) ; code1(yyvsp[-3].arg2p->cnt) ;
  358. X             zfree(yyvsp[-3].arg2p, sizeof(ARG2_REC)) ;
  359. X
  360. X             check_array(yyvsp[0].stp) ;
  361. X             code_array(yyvsp[0].stp) ;
  362. X             code1(A_TEST) ;
  363. X           }
  364. break;
  365. case 110:
  366. #line 620 "parse.y"
  367. X             if ( yyvsp[-1].ival > 1 )
  368. X             { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
  369. X
  370. X             check_array(yyvsp[-4].stp) ;
  371. X             if( is_local(yyvsp[-4].stp) )
  372. X             { code1(LAE_PUSHA) ; code1(yyvsp[-4].stp->offset) ; }
  373. X             else code2(AE_PUSHA, yyvsp[-4].stp->stval.array) ;
  374. X             yyval.start = yyvsp[-3].start ;
  375. X           }
  376. break;
  377. case 111:
  378. #line 633 "parse.y"
  379. X             if ( yyvsp[-1].ival > 1 )
  380. X             { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
  381. X
  382. X             check_array(yyvsp[-4].stp) ;
  383. X             if( is_local(yyvsp[-4].stp) )
  384. X             { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
  385. X             else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
  386. X             yyval.start = yyvsp[-3].start ;
  387. X           }
  388. break;
  389. case 112:
  390. #line 645 "parse.y"
  391. X             if ( yyvsp[-2].ival > 1 )
  392. X             { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
  393. X
  394. X             check_array(yyvsp[-5].stp) ;
  395. X             if( is_local(yyvsp[-5].stp) )
  396. X             { code1(LAE_PUSHA) ; code1(yyvsp[-5].stp->offset) ; }
  397. X             else code2(AE_PUSHA, yyvsp[-5].stp->stval.array) ;
  398. X             if ( yyvsp[0].ival == '+' )  code1(_POST_INC) ;
  399. X             else  code1(_POST_DEC) ;
  400. X
  401. X             yyval.start = yyvsp[-4].start ;
  402. X           }
  403. break;
  404. case 113:
  405. #line 662 "parse.y"
  406. X               yyval.start = yyvsp[-4].start ;
  407. X               if ( yyvsp[-2].ival > 1 ) { code1(A_CAT) ; code1(yyvsp[-2].ival) ; }
  408. X               check_array(yyvsp[-5].stp) ;
  409. X               code_array(yyvsp[-5].stp) ;
  410. X               code1(A_DEL) ;
  411. X             }
  412. break;
  413. case 114:
  414. #line 675 "parse.y"
  415. { eat_nl() ; BC_new() ;
  416. X                      yyval.start = code_ptr ;
  417. X
  418. X                      check_var(yyvsp[-3].stp) ;
  419. X                      code_address(yyvsp[-3].stp) ;
  420. X                      check_array(yyvsp[-1].stp) ;
  421. X                      code_array(yyvsp[-1].stp) ;
  422. X
  423. X                      code2(SET_ALOOP, (INST*)0) ;
  424. X                    }
  425. break;
  426. case 115:
  427. #line 689 "parse.y"
  428. X            yyvsp[0].start[-1].op = code_ptr - yyvsp[0].start + 1 ;
  429. X                BC_clear( code_ptr+3 , code_ptr) ;
  430. X        code_jmp(ALOOP, yyvsp[0].start) ;
  431. X        code_ptr++->ptr = (PTR) ZMALLOC(ALOOP_STATE) ;
  432. X              }
  433. break;
  434. case 116:
  435. #line 704 "parse.y"
  436. { yyval.start = code_ptr ; code2(F_PUSHA, yyvsp[0].cp) ; }
  437. break;
  438. case 117:
  439. #line 706 "parse.y"
  440. { check_var(yyvsp[0].stp) ;
  441. X             yyval.start = code_ptr ;
  442. X             if ( is_local(yyvsp[0].stp) )
  443. X             { code1(L_PUSHI) ; code1(yyvsp[0].stp->offset) ; }
  444. X             else code2(_PUSHI, yyvsp[0].stp->stval.cp) ;
  445. X
  446. X         CODE_FE_PUSHA() ;
  447. X           }
  448. break;
  449. case 118:
  450. #line 715 "parse.y"
  451. X             if ( yyvsp[-1].ival > 1 )
  452. X             { code1(A_CAT) ; code1(yyvsp[-1].ival) ; }
  453. X
  454. X             check_array(yyvsp[-4].stp) ;
  455. X             if( is_local(yyvsp[-4].stp) )
  456. X             { code1(LAE_PUSHI) ; code1(yyvsp[-4].stp->offset) ; }
  457. X             else code2(AE_PUSHI, yyvsp[-4].stp->stval.array) ;
  458. X
  459. X         CODE_FE_PUSHA()  ;
  460. X
  461. X             yyval.start = yyvsp[-3].start ;
  462. X           }
  463. break;
  464. case 119:
  465. #line 729 "parse.y"
  466. { yyval.start = yyvsp[0].start ;  CODE_FE_PUSHA() ; }
  467. break;
  468. case 120:
  469. #line 731 "parse.y"
  470. { yyval.start = yyvsp[-1].start ; }
  471. break;
  472. case 121:
  473. #line 735 "parse.y"
  474. { field_A2I() ; }
  475. break;
  476. case 122:
  477. #line 738 "parse.y"
  478. { code1(F_ASSIGN) ; }
  479. break;
  480. case 123:
  481. #line 739 "parse.y"
  482. { code1(F_ADD_ASG) ; }
  483. break;
  484. case 124:
  485. #line 740 "parse.y"
  486. { code1(F_SUB_ASG) ; }
  487. break;
  488. case 125:
  489. #line 741 "parse.y"
  490. { code1(F_MUL_ASG) ; }
  491. break;
  492. case 126:
  493. #line 742 "parse.y"
  494. { code1(F_DIV_ASG) ; }
  495. break;
  496. case 127:
  497. #line 743 "parse.y"
  498. { code1(F_MOD_ASG) ; }
  499. break;
  500. case 128:
  501. #line 744 "parse.y"
  502. { code1(F_POW_ASG) ; }
  503. break;
  504. case 129:
  505. #line 751 "parse.y"
  506. { code2(_BUILTIN, bi_split) ; }
  507. break;
  508. case 130:
  509. #line 755 "parse.y"
  510. { yyval.start = yyvsp[-2].start ;
  511. X              check_array(yyvsp[0].stp) ;
  512. X              code_array(yyvsp[0].stp)  ;
  513. X            }
  514. break;
  515. case 131:
  516. #line 762 "parse.y"
  517. { code2(_PUSHI, &fs_shadow) ; }
  518. break;
  519. case 132:
  520. #line 764 "parse.y"
  521. X                  if ( yyvsp[-1].start == code_ptr - 2 )
  522. X                  {
  523. X                    if ( code_ptr[-2].op == _MATCH0 )
  524. X                        RE_as_arg() ;
  525. X                    else
  526. X                    if ( code_ptr[-2].op == _PUSHS )
  527. X                    { CELL *cp = ZMALLOC(CELL) ;
  528. X
  529. X                      cp->type = C_STRING ;
  530. X                      cp->ptr = code_ptr[-1].ptr ;
  531. X                      cast_for_split(cp) ;
  532. X                      code_ptr[-2].op = _PUSHC ;
  533. X                      code_ptr[-1].ptr = (PTR) cp ;
  534. X                    }
  535. X                  }
  536. X                }
  537. break;
  538. case 133:
  539. #line 788 "parse.y"
  540. { yyval.start = yyvsp[-3].start ; 
  541. X          code2(_BUILTIN, bi_match) ;
  542. X        }
  543. break;
  544. case 134:
  545. #line 795 "parse.y"
  546. {
  547. X               if ( yyvsp[0].start == code_ptr - 2 ) 
  548. X               {
  549. X                 if ( yyvsp[0].start->op == _MATCH0 ) RE_as_arg() ;
  550. X                 else
  551. X                 if ( yyvsp[0].start->op == _PUSHS )
  552. X                 { CELL *cp = ZMALLOC(CELL) ;
  553. X
  554. X                   cp->type = C_STRING ;
  555. X                   cp->ptr = yyvsp[0].start[1].ptr ;
  556. X                   cast_to_RE(cp) ;
  557. X                   yyvsp[0].start->op = _PUSHC ;
  558. X                   yyvsp[0].start[1].ptr = (PTR) cp ;
  559. X                 } 
  560. X               }
  561. X             }
  562. break;
  563. case 135:
  564. #line 816 "parse.y"
  565. { yyval.start = code_ptr ;
  566. X                      code1(_EXIT0) ; }
  567. break;
  568. case 136:
  569. #line 819 "parse.y"
  570. { yyval.start = yyvsp[-1].start ; code1(_EXIT) ; }
  571. break;
  572. case 137:
  573. #line 822 "parse.y"
  574. { yyval.start = code_ptr ;
  575. X                      code1(_RET0) ; }
  576. break;
  577. case 138:
  578. #line 825 "parse.y"
  579. { yyval.start = yyvsp[-1].start ; code1(_RET) ; }
  580. break;
  581. case 139:
  582. #line 830 "parse.y"
  583. { yyval.start = code_ptr ;
  584. X            code2(F_PUSHA, &field[0]) ;
  585. X            code1(_PUSHINT) ; code1(0) ; 
  586. X            code2(_BUILTIN, bi_getline) ;
  587. X            getline_flag = 0 ;
  588. X          }
  589. break;
  590. case 140:
  591. #line 837 "parse.y"
  592. { yyval.start = yyvsp[0].start ;
  593. X            code1(_PUSHINT) ; code1(0) ;
  594. X            code2(_BUILTIN, bi_getline) ;
  595. X            getline_flag = 0 ;
  596. X          }
  597. break;
  598. case 141:
  599. #line 843 "parse.y"
  600. { code1(_PUSHINT) ; code1(F_IN) ;
  601. X            code2(_BUILTIN, bi_getline) ;
  602. X            /* getline_flag already off in yylex() */
  603. X          }
  604. break;
  605. case 142:
  606. #line 848 "parse.y"
  607. { code2(F_PUSHA, &field[0]) ;
  608. X            code1(_PUSHINT) ; code1(PIPE_IN) ;
  609. X            code2(_BUILTIN, bi_getline) ;
  610. X          }
  611. break;
  612. case 143:
  613. #line 853 "parse.y"
  614. X            code1(_PUSHINT) ; code1(PIPE_IN) ;
  615. X            code2(_BUILTIN, bi_getline) ;
  616. X          }
  617. break;
  618. case 144:
  619. #line 859 "parse.y"
  620. { getline_flag = 1 ; }
  621. break;
  622. case 147:
  623. #line 864 "parse.y"
  624. { yyval.start = code_ptr ;
  625. X                   code2(F_PUSHA, field+0) ;
  626. X                 }
  627. break;
  628. case 148:
  629. #line 868 "parse.y"
  630. { yyval.start = yyvsp[-1].start ; }
  631. break;
  632. case 149:
  633. #line 876 "parse.y"
  634. {
  635. X             if ( yyvsp[0].start - yyvsp[-1].start == 2 && yyvsp[-1].start->op == _PUSHS  )
  636. X             { /* cast from STRING to REPL at compile time */
  637. X               CELL *cp = ZMALLOC(CELL) ;
  638. X               cp->type = C_STRING ;
  639. X               cp->ptr = yyvsp[-1].start[1].ptr ;
  640. X               cast_to_REPL(cp) ;
  641. X               yyvsp[-1].start->op = _PUSHC ;
  642. X               yyvsp[-1].start[1].ptr = (PTR) cp ;
  643. X             }
  644. X             code2(_BUILTIN, yyvsp[-5].fp) ;
  645. X             yyval.start = yyvsp[-3].start ;
  646. X           }
  647. break;
  648. case 150:
  649. #line 891 "parse.y"
  650. { yyval.fp = bi_sub ; }
  651. break;
  652. case 151:
  653. #line 892 "parse.y"
  654. { yyval.fp = bi_gsub ; }
  655. break;
  656. case 152:
  657. #line 897 "parse.y"
  658. { yyval.start = code_ptr ;
  659. X                  code2(F_PUSHA, &field[0]) ; 
  660. X                }
  661. break;
  662. case 153:
  663. #line 902 "parse.y"
  664. { yyval.start = yyvsp[-1].start ; }
  665. break;
  666. case 154:
  667. #line 910 "parse.y"
  668. { resize_fblock(yyvsp[-1].fbp, code_ptr) ;
  669. X                   code_ptr = main_code_ptr ;
  670. X                   scope = SCOPE_MAIN ;
  671. X                   active_funct = (FBLOCK *) 0 ;
  672. X                   restore_ids() ;
  673. X                 }
  674. break;
  675. case 155:
  676. #line 920 "parse.y"
  677. { eat_nl() ;
  678. X                   scope = SCOPE_FUNCT ;
  679. X                   active_funct = yyvsp[-3].fbp ;
  680. X                   main_code_ptr = code_ptr ;
  681. X
  682. X                   if ( yyvsp[-3].fbp->nargs = yyvsp[-1].ival )
  683. X                        yyvsp[-3].fbp->typev = (char *)
  684. X            memset( zmalloc(yyvsp[-1].ival), ST_LOCAL_NONE, SIZE_T(yyvsp[-1].ival)) ;
  685. X                   else yyvsp[-3].fbp->typev = (char *) 0 ;
  686. X                   code_ptr = yyvsp[-3].fbp->code = 
  687. X                       (INST *) zmalloc(PAGE_SZ*sizeof(INST)) ;
  688. X                 }
  689. break;
  690. case 156:
  691. #line 935 "parse.y"
  692. { FBLOCK  *fbp ;
  693. X
  694. X                   if ( yyvsp[0].stp->type == ST_NONE )
  695. X                   {
  696. X                         yyvsp[0].stp->type = ST_FUNCT ;
  697. X                         fbp = yyvsp[0].stp->stval.fbp = 
  698. X                             (FBLOCK *) zmalloc(sizeof(FBLOCK)) ;
  699. X                         fbp->name = yyvsp[0].stp->name ;
  700. X                   }
  701. X                   else
  702. X                   {
  703. X                         type_error( yyvsp[0].stp ) ;
  704. X
  705. X                         /* this FBLOCK will not be put in
  706. X                            the symbol table */
  707. X                         fbp = (FBLOCK*) zmalloc(sizeof(FBLOCK)) ;
  708. X                         fbp->name = "" ;
  709. X                   }
  710. X                   yyval.fbp = fbp ;
  711. X                 }
  712. break;
  713. case 157:
  714. #line 957 "parse.y"
  715. { yyval.fbp = yyvsp[0].fbp ; 
  716. X                   if ( yyvsp[0].fbp->code ) 
  717. X                       compile_error("redefinition of %s" , yyvsp[0].fbp->name) ;
  718. X                 }
  719. break;
  720. case 158:
  721. #line 963 "parse.y"
  722. { yyval.ival = 0 ; }
  723. break;
  724. case 160:
  725. #line 968 "parse.y"
  726. { yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
  727. X                yyvsp[0].stp->type = ST_LOCAL_NONE ;
  728. X                yyvsp[0].stp->offset = 0 ;
  729. X                yyval.ival = 1 ;
  730. X              }
  731. break;
  732. case 161:
  733. #line 974 "parse.y"
  734. { if ( is_local(yyvsp[0].stp) ) 
  735. X                  compile_error("%s is duplicated in argument list",
  736. X                    yyvsp[0].stp->name) ;
  737. X                else
  738. X                { yyvsp[0].stp = save_id(yyvsp[0].stp->name) ;
  739. X                  yyvsp[0].stp->type = ST_LOCAL_NONE ;
  740. X                  yyvsp[0].stp->offset = yyvsp[-2].ival ;
  741. X                  yyval.ival = yyvsp[-2].ival + 1 ;
  742. X                }
  743. X              }
  744. break;
  745. case 162:
  746. #line 987 "parse.y"
  747. {  /* we may have to recover from a bungled function
  748. X               definition */
  749. X
  750. X           /* can have local ids, before code scope
  751. X              changes  */
  752. X            restore_ids() ;
  753. X
  754. X            if (scope == SCOPE_FUNCT)
  755. X                    { scope = SCOPE_MAIN ; 
  756. X              active_funct = (FBLOCK*) 0 ;
  757. X            }
  758. X
  759. X            code_ptr = main_code_ptr ;
  760. X                 }
  761. break;
  762. case 163:
  763. #line 1006 "parse.y"
  764. { yyval.start = yyvsp[-1].start ;
  765. X             code2(_CALL, yyvsp[-2].fbp) ;
  766. X
  767. X             if ( yyvsp[0].ca_p )  code1(yyvsp[0].ca_p->arg_num+1) ;
  768. X             else  code1(0) ;
  769. X               
  770. X             check_fcall(yyvsp[-2].fbp, scope, active_funct, 
  771. X                         yyvsp[0].ca_p, token_lineno) ;
  772. X           }
  773. break;
  774. case 164:
  775. #line 1018 "parse.y"
  776. { yyval.ca_p = (CA_REC *) 0 ; }
  777. break;
  778. case 165:
  779. #line 1020 "parse.y"
  780. { yyval.ca_p = yyvsp[0].ca_p ;
  781. X                 yyval.ca_p->link = yyvsp[-1].ca_p ;
  782. X                 yyval.ca_p->arg_num = yyvsp[-1].ca_p ? yyvsp[-1].ca_p->arg_num+1 : 0 ;
  783. X               }
  784. break;
  785. case 166:
  786. #line 1035 "parse.y"
  787. { yyval.ca_p = (CA_REC *) 0 ; }
  788. break;
  789. case 167:
  790. #line 1037 "parse.y"
  791. { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
  792. X                yyval.ca_p->link = yyvsp[-2].ca_p ;
  793. X                yyval.ca_p->type = CA_EXPR  ;
  794. X                yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
  795. X              }
  796. break;
  797. case 168:
  798. #line 1043 "parse.y"
  799. { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
  800. X                yyval.ca_p->link = yyvsp[-2].ca_p ;
  801. X                yyval.ca_p->arg_num = yyvsp[-2].ca_p ? yyvsp[-2].ca_p->arg_num+1 : 0 ;
  802. X
  803. X                code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
  804. X              }
  805. break;
  806. case 169:
  807. #line 1052 "parse.y"
  808. { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
  809. X                yyval.ca_p->type = CA_EXPR ;
  810. X              }
  811. break;
  812. case 170:
  813. #line 1057 "parse.y"
  814. { yyval.ca_p = (CA_REC *) zmalloc(sizeof(CA_REC)) ;
  815. X                code_call_id(yyval.ca_p, yyvsp[-1].stp) ;
  816. X              }
  817. break;
  818. #line 2522 "y.tab.c"
  819. X    }
  820. X    yyssp -= yym;
  821. X    yystate = *yyssp;
  822. X    yyvsp -= yym;
  823. X    yym = yylhs[yyn];
  824. X    if (yystate == 0 && yym == 0)
  825. X    {
  826. #if YYDEBUG
  827. X        if (yydebug)
  828. X            printf("yydebug: after reduction, shifting from state 0 to\
  829. X state %d\n", YYFINAL);
  830. #endif
  831. X        yystate = YYFINAL;
  832. X        *++yyssp = YYFINAL;
  833. X        *++yyvsp = yyval;
  834. X        if (yychar < 0)
  835. X        {
  836. X            if ((yychar = YYLEX()) < 0) yychar = 0;
  837. #if YYDEBUG
  838. X            if (yydebug)
  839. X            {
  840. X                yys = 0;
  841. X                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
  842. X                if (!yys) yys = "illegal-symbol";
  843. X                printf("yydebug: state %d, reading %d (%s)\n",
  844. X                        YYFINAL, yychar, yys);
  845. X            }
  846. #endif
  847. X        }
  848. X        if (yychar == 0) goto yyaccept;
  849. X        goto yyloop;
  850. X    }
  851. X    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
  852. X            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
  853. X        yystate = yytable[yyn];
  854. X    else
  855. X        yystate = yydgoto[yym];
  856. #if YYDEBUG
  857. X    if (yydebug)
  858. X        printf("yydebug: after reduction, shifting from state %d \
  859. to state %d\n", *yyssp, yystate);
  860. #endif
  861. X    if (yyssp >= yyss + yystacksize - 1)
  862. X    {
  863. X        goto yyoverflow;
  864. X    }
  865. X    *++yyssp = yystate;
  866. X    *++yyvsp = yyval;
  867. X    goto yyloop;
  868. yyoverflow:
  869. X    yyerror("yacc stack overflow");
  870. yyabort:
  871. X    return (1);
  872. yyaccept:
  873. X    return (0);
  874. }
  875. X
  876. /********************************************
  877. parse2.xc
  878. copyright 1991, Michael D. Brennan
  879. X
  880. This is a source file for mawk, an implementation of
  881. the AWK programming language.
  882. X
  883. Mawk is distributed without warranty under the terms of
  884. the GNU General Public License, version 2, 1991.
  885. ********************************************/
  886. X
  887. /* $Log: parse.c,v $
  888. X * Revision 1.6  1992/08/27  04:12:49  mike
  889. X * *** empty log message ***
  890. X *
  891. Revision 5.1  1991/12/05  07:52:38  brennan
  892. 1.1 pre-release
  893. X
  894. */
  895. X
  896. /* If using Berkeley yacc, we can put the parser table 
  897. X   memory to the zmalloc pool.  This is kind of ugly and
  898. X   with paged vm probably a nop, but for DOS and MINIX and ??
  899. X   it frees a considerably amount of memory.
  900. X
  901. X   This file is part of parse.c via
  902. X      cat  y.tab.c  parse2.xc  > parse.c
  903. */
  904. X
  905. static struct yacc_mem   yacc_mem[] = 
  906. {
  907. 0 , 0 ,  /* don't remove this */
  908. X
  909. #ifdef   YYBYACC
  910. (PTR) yycheck, sizeof(yycheck)/ZBLOCKSZ,
  911. (PTR) yytable, sizeof(yytable)/ZBLOCKSZ,
  912. #ifndef  YYXBYACC  /* with xbyacc these are storage auto */
  913. (PTR) yyvs , sizeof(yyvs)/ZBLOCKSZ,
  914. (PTR) yyss, sizeof(yyss)/ZBLOCKSZ,
  915. #endif
  916. (PTR) yydefred, sizeof(yydefred)/ZBLOCKSZ,
  917. (PTR) yydgoto, sizeof(yydgoto)/ZBLOCKSZ,
  918. (PTR) yygindex, sizeof(yygindex)/ZBLOCKSZ,
  919. (PTR) yylen, sizeof(yylen)/ZBLOCKSZ,
  920. (PTR) yylhs, sizeof(yylhs)/ZBLOCKSZ,
  921. (PTR) yyrindex, sizeof(yyrindex)/ZBLOCKSZ,
  922. (PTR) yysindex, sizeof(yysindex)/ZBLOCKSZ,
  923. #endif
  924. X
  925. 0,0 } ;
  926. X
  927. struct yacc_mem  *yacc_memp = yacc_mem ;
  928. X
  929. SHAR_EOF
  930. echo 'File Xparse.c is complete' &&
  931. chmod 0644 Xparse.c ||
  932. echo 'restore of Xparse.c failed'
  933. Wc_c="`wc -c < 'Xparse.c'`"
  934. test 91455 -eq "$Wc_c" ||
  935.     echo 'Xparse.c: original size 91455, current size' "$Wc_c"
  936. rm -f _shar_wnt_.tmp
  937. fi
  938. # ============= Xparse.h ==============
  939. if test -f 'Xparse.h' -a X"$1" != X"-c"; then
  940.     echo 'x - skipping Xparse.h (File already exists)'
  941.     rm -f _shar_wnt_.tmp
  942. else
  943. > _shar_wnt_.tmp
  944. echo 'x - extracting Xparse.h (Text)'
  945. sed 's/^X//' << 'SHAR_EOF' > 'Xparse.h' &&
  946. #define UNEXPECTED 257
  947. #define BAD_DECIMAL 258
  948. #define NL 259
  949. #define SEMI_COLON 260
  950. #define LBRACE 261
  951. #define RBRACE 262
  952. #define LBOX 263
  953. #define RBOX 264
  954. #define COMMA 265
  955. #define IO_OUT 266
  956. #define ASSIGN 267
  957. #define ADD_ASG 268
  958. #define SUB_ASG 269
  959. #define MUL_ASG 270
  960. #define DIV_ASG 271
  961. #define MOD_ASG 272
  962. #define POW_ASG 273
  963. #define QMARK 274
  964. #define COLON 275
  965. #define OR 276
  966. #define AND 277
  967. #define IN 278
  968. #define MATCH 279
  969. #define EQ 280
  970. #define NEQ 281
  971. #define LT 282
  972. #define LTE 283
  973. #define GT 284
  974. #define GTE 285
  975. #define CAT 286
  976. #define GETLINE 287
  977. #define PLUS 288
  978. #define MINUS 289
  979. #define MUL 290
  980. #define DIV 291
  981. #define MOD 292
  982. #define NOT 293
  983. #define UMINUS 294
  984. #define IO_IN 295
  985. #define PIPE 296
  986. #define POW 297
  987. #define INC_or_DEC 298
  988. #define DOLLAR 299
  989. #define FIELD 300
  990. #define LPAREN 301
  991. #define RPAREN 302
  992. #define DOUBLE 303
  993. #define STRING_ 304
  994. #define RE 305
  995. #define ID 306
  996. #define D_ID 307
  997. #define FUNCT_ID 308
  998. #define BUILTIN 309
  999. #define LENGTH 310
  1000. #define PRINT 311
  1001. #define PRINTF 312
  1002. #define SPLIT 313
  1003. #define MATCH_FUNC 314
  1004. #define SUB 315
  1005. #define GSUB 316
  1006. #define DO 317
  1007. #define WHILE 318
  1008. #define FOR 319
  1009. #define BREAK 320
  1010. #define CONTINUE 321
  1011. #define IF 322
  1012. #define ELSE 323
  1013. #define DELETE 324
  1014. #define BEGIN 325
  1015. #define END 326
  1016. #define EXIT 327
  1017. #define NEXT 328
  1018. #define RETURN 329
  1019. #define FUNCTION 330
  1020. typedef union{
  1021. CELL *cp ;
  1022. SYMTAB *stp ;
  1023. INST  *start ; /* code starting address */
  1024. PF_CP  fp ;  /* ptr to a (print/printf) or (sub/gsub) function */
  1025. BI_REC *bip ; /* ptr to info about a builtin */
  1026. FBLOCK  *fbp  ; /* ptr to a function block */
  1027. ARG2_REC *arg2p ;
  1028. CA_REC   *ca_p  ;
  1029. int   ival ;
  1030. PTR   ptr ;
  1031. } YYSTYPE;
  1032. extern YYSTYPE yylval;
  1033. SHAR_EOF
  1034. chmod 0644 Xparse.h ||
  1035. echo 'restore of Xparse.h failed'
  1036. Wc_c="`wc -c < 'Xparse.h'`"
  1037. test 1671 -eq "$Wc_c" ||
  1038.     echo 'Xparse.h: original size 1671, current size' "$Wc_c"
  1039. rm -f _shar_wnt_.tmp
  1040. fi
  1041. # ============= doc.diff ==============
  1042. if test -f 'doc.diff' -a X"$1" != X"-c"; then
  1043.     echo 'x - skipping doc.diff (File already exists)'
  1044.     rm -f _shar_wnt_.tmp
  1045. else
  1046. > _shar_wnt_.tmp
  1047. echo 'x - extracting doc.diff (Binary)'
  1048. sed 's/^X//' << 'SHAR_EOF' > _shar_tmp_.tmp &&
  1049. begin 600 doc.diff
  1050. M26YD97@Z(&UA=VLN9&]C"C$Q9#$P"CP@"C$X9#$V"CP@"C0T9#0Q"CP@"C0V
  1051. M8S0S"CP@("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@('-E=',@=&AE(&9I
  1052. M96QD('-E<&%R871O<BP@1E,L('1O(%\(=E\(85\(;%\(=5\(92X*+2TM"CX@
  1053. M("`@("`M1B!?"'9?"&%?"&Q?"'5?"&4@("`@("`@<V5T<R!T:&4@9FEE;&0@
  1054. M<V5P87)A=&]R+"!&4RP@=&\@7PAV7PAA7PAL7PAU7PAE+@HT-V$T-2PT-PH^
  1055. M("`@("`@+68@7PAF7PAI7PAL7PAE("`@("`@("!0<F]G<F%M('1E>'0@:7,@
  1056. M<F5A9"`@9G)O;2`@7PAF7PAI7PAL7PAE("!I;G-T96%D("!O9@H^("`@("`@
  1057. M("`@("`@("`@("`@("`@9G)O;2`@=&AE("!C;VUM86YD(&QI;F4N("!-=6QT
  1058. M:7!L92`M9B!O<'1I;VYS"CX@("`@("`@("`@("`@("`@("`@("!A<F4@86QL
  1059. M;W=E9"X*-#DL-3%C-#D*/"`@("`@("UF(%\(9E\(:5\(;%\(92`@("`@(%!R
  1060. M;V=R86T@=&5X="!I<R!R96%D(&9R;VT@7PAF7PAI7PAL7PAE(&EN<W1E860@
  1061. M;V8@(&9R;VT*/"`@("`@("`@("`@("`@("`@("!T:&4@(&-O;6UA;F0@(&QI
  1062. M;F4N("`@375L=&EP;&4@("UF("!O<'1I;VYS(&%R90H\("`@("`@("`@("`@
  1063. M("`@("`@(&%L;&]W960N"BTM+0H^("`@("`@+78@7PAV7PAA7PAR/5\(=E\(
  1064. M85\(;%\(=5\(92`@(&%S<VEG;G,@7PAV7PAA7PAL7PAU7PAE('1O('!R;V=R
  1065. M86T@=F%R:6%B;&4@7PAV7PAA7PAR+@HU,F$U,0H^("`@("`@+2T@("`@("`@
  1066. M("`@("`@:6YD:6-A=&5S('1H92!U;F%M8FEG=6]U<R!E;F0@;V8@;W!T:6]N
  1067. M<RX*-31C-3,L-34*/"`@("`@("UV(%\(=E\(85\(<CU?"'9?"&%?"&Q?"'5?
  1068. M"&4@87-S:6=N<R!?"'9?"&%?"&Q?"'5?"&4@=&\@<')O9W)A;2!V87)I86)L
  1069. M92!?"'9?"&%?"'(N"BTM+0H^("`@("`@5&AE(&%B;W9E(&]P=&EO;G,@=VEL
  1070. M;"!B92!A=F%I;&%B;&4@=VET:"!A;GD@4&]S:7@@(&-O;7!A=&DM"CX@("`@
  1071. M("!B;&4@(&EM<&QE;65N=&%T:6]N("!O9B`@05=++"`@86YD("!I;7!L96UE
  1072. M;G1A=&EO;B`@<W!E8VEF:6,*/B`@("`@(&]P=&EO;G,@87)E('!R969A8V5D
  1073. M('=I=&@@+5<N("!M87=K('!R;W9I9&5S(&9O=7(Z"C4U834W+#4Y"CX@("`@
  1074. M("`M5R!V97)S:6]N("`@("!M87=K('=R:71E<R`@:71S("!V97)S:6]N("!A
  1075. M;F0@(&-O<'ER:6=H="`@=&\*/B`@("`@("`@("`@("`@("`@("`@('-T9&]U
  1076. M="`@86YD("!C;VUP:6QE9"`@;&EM:71S("!T;R`@<W1D97)R(&%N9`H^("`@
  1077. M("`@("`@("`@("`@("`@("`@97AI=',@,"X*-3=D-C`*/"`@("`@("TM("`@
  1078. M("`@("`@("!I;F1I8V%T97,@=&AE('5N86UB:6=U;W5S(&5N9"!O9B!O<'1I
  1079. M;VYS+@HU.6$V,PH^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z
  1080. M($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@("`Q"C8S9#8V"CP@5F5R
  1081. M<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@
  1082. M("`@("`@("`@("`@("`@(#$*-C<L-CED-CD*/"`*/"`*/"`*-S0L-S9C-S0L
  1083. M-S8*/"`@("`@(%1H92!A8F]V92!O<'1I;VYS('=I;&P@8F4@879A:6QA8FQE
  1084. M('=I=&@@86YY(%!O<VEX("!C;VUP871I+0H\("`@("`@8FQE("!I;7!L96UE
  1085. M;G1A=&EO;B`@;V8@($%72RP@(&%N9"`@:6UP;&5M96YT871I;VX@('-P96-I
  1086. M9FEC"CP@("`@("!O<'1I;VYS(&%R92!P<F5F86-E9"!W:71H("U7+B!M87=K
  1087. M('!R;W9I9&5S('1H<F5E.@HM+2T*/B`@("`@("U7(&1U;7`@("`@("`@('=R
  1088. M:71E<R`@86X@(&%S<V5M8FQE<B`@;&EK92`@;&ES=&EN9R`@;V8@('1H90H^
  1089. M("`@("`@("`@("`@("`@("`@("`@:6YT97)N86P@(')E<')E<V5N=&%T:6]N
  1090. M("!O9B`@=&AE("!P<F]G<F%M('1O"CX@("`@("`@("`@("`@("`@("`@("!S
  1091. M=&1E<G(N"C<W83<X+#@Q"CX@("`@("`M5R!S<')I;G1F/5\(;E\(=5\(;2!A
  1092. M9&IU<W1S('1H92!S:7IE(&]F(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*
  1093. M/B`@("`@("`@("`@("`@("`@("`@(&)U9F9E<B`@=&\@(%\(;E\(=5\(;2!B
  1094. M>71E<RX@($UO<F4@=&AA;B!R87)E('5S92!O9@H^("`@("`@("`@("`@("`@
  1095. M("`@("`@=&AI<R!O<'1I;VX@:6YD:6-A=&5S(&UA=VL@<VAO=6QD("!B92`@
  1096. M<F5C;VTM"CX@("`@("`@("`@("`@("`@("`@("!P:6QE9"X*-SDL.#!C.#,*
  1097. M/"`@("`@("U7('9E<G-I;VX@("!M87=K('=R:71E<R!I=',@=F5R<VEO;B!A
  1098. M;F0@8V]P>7)I9VAT('1O('-T9&]U=`H\("`@("`@("`@("`@("`@("`@(&%N
  1099. M9"!C;VUP:6QE9"!L:6UI=',@=&\@<W1D97)R(&%N9"!E>&ET<R`P+@HM+2T*
  1100. M/B`@("`@("U7('!O<VEX7W-P86-E(&9O<F-E<R!M87=K(&YO="!T;R!C;VYS
  1101. M:61E<B`G7&XG('1O(&)E('-P86-E+@HX,BPY-&0X-`H\("`@("`@+5<@9'5M
  1102. M<"`@("`@('=R:71E<R!A;B!A<W-E;6)L97(@;&EK92!L:7-T:6YG(&]F('1H
  1103. M92`@:6YT97(M"CP@("`@("`@("`@("`@("`@("`@;F%L(')E<')E<V5N=&%T
  1104. M:6]N(&]F('1H92!P<F]G<F%M('1O('-T9&5R<BX*/"`*/"`@("`@("U7('-P
  1105. M<FEN=&8]7PAN7PAU7PAM"CP@("`@("`@("`@("`@("`@("`@861J=7-T<R!T
  1106. M:&4@<VEZ92`@;V8@(&UA=VLG<R`@:6YT97)N86P@('-P<FEN=&8*/"`@("`@
  1107. M("`@("`@("`@("`@("!B=69F97(@('1O("!?"&Y?"'5?"&T@(&)Y=&5S+B`@
  1108. M($UO<F4@=&AA;B!R87)E('5S92!O9@H\("`@("`@("`@("`@("`@("`@('1H
  1109. M:7,@;W!T:6]N(&EN9&EC871E<R`@;6%W:R`@<VAO=6QD("!B92`@<F5C;VTM
  1110. M"CP@("`@("`@("`@("`@("`@("`@<&EL960N"CP@"CP@("`@("`M5R!P;W-I
  1111. M>%]S<&%C90H\("`@("`@("`@("`@("`@("`@(&9O<F-E<R!M87=K(&YO="!T
  1112. M;R!C;VYS:61E<B`G7&XG('1O(&)E('-P86-E+@H\(`H\(`HQ,C1A,3$U"CX@
  1113. M("`@("`@("`@(&EF("@@7PAE7PAX7PAP7PAR("D@7PAS7PAT7PAA7PAT7PAE
  1114. M7PAM7PAE7PAN7PAT"C$R-6$Q,3<*/B`@("`@("`@("`@:68@*"!?"&5?"'A?
  1115. M"'!?"'(@*2!?"'-?"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0@96QS92!?"'-?
  1116. M"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0*,3(V83$Q.0H^("`@("`@("`@("!W
  1117. M:&EL92`H(%\(95\(>%\(<%\(<B`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
  1118. M;E\(=`HQ,C=A,3(Q"CX@("`@("`@("`@(&1O(%\(<U\(=%\(85\(=%\(95\(
  1119. M;5\(95\(;E\(="!W:&EL92`H(%\(95\(>%\(<%\(<B`I"C$R.6,Q,C,*/"!6
  1120. M97)S:6]N(#$N,2`@("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@
  1121. M("`@("`@("`@("`@("`@("`@,@HM+2T*/B`@("`@("`@("`@9F]R("@@7PAO
  1122. M7PAP7PAT7U\(95\(>%\(<%\(<B`[(%\(;U\(<%\(=%]?"&5?"'A?"'!?"'(@
  1123. M.R!?"&]?"'!?"'1?7PAE7PAX7PAP7PAR("D@7PAS7PAT7PAA7PAT7PAE7PAM
  1124. M7PAE7PAN7PAT"C$S-&$Q,CD*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@
  1125. M8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`@,@HQ,S9D
  1126. M,3,P"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13
  1127. M("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,30P9#$S,PH\("`@("`@("`@
  1128. M("!I9B`H(%\(95\(>%\(<%\(<B`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
  1129. M;E\(=`HQ-#)D,3,T"CP@("`@("`@("`@(&EF("@@7PAE7PAX7PAP7PAR("D@
  1130. M7PAS7PAT7PAA7PAT7PAE7PAM7PAE7PAN7PAT(&5L<V4@7PAS7PAT7PAA7PAT
  1131. M7PAE7PAM7PAE7PAN7PAT"C$T-&,Q,S8*/"`@("`@("`@("`@=VAI;&4@*"!?
  1132. M"&5?"'A?"'!?"'(@*2!?"'-?"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0*+2TM
  1133. M"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
  1134. M("`@("`@("`@("`@("`@($U!5TLH,2D*,30V9#$S-PH\("`@("`@("`@("!D
  1135. M;R!?"'-?"'1?"&%?"'1?"&5?"&U?"&5?"&Y?"'0@=VAI;&4@*"!?"&5?"'A?
  1136. M"'!?"'(@*0HQ-#AD,3,X"CP@("`@("`@("`@(&9O<B`H(%\(;U\(<%\(=%]?
  1137. M"&5?"'A?"'!?"'(@.R!?"&]?"'!?"'1?7PAE7PAX7PAP7PAR(#L@7PAO7PAP
  1138. M7PAT7U\(95\(>%\(<%\(<B`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(;E\(
  1139. M=`HQ.3%A,3@R+#$X,PH^("`@("`@8V]M92!F<F]M(&EN<'5T(&%N9"!A<F4@
  1140. M='EP:6-A;&QY('-T;W)E9"`@:6X@(&9I96QD<RX@("`H4V5E"CX@("`@("!S
  1141. M96-T:6]N(#0I+@HQ.3)A,3@U+#$X-PH^("`@("`@5&AE('1Y<&4@;V8@86X@
  1142. M97AP<F5S<VEO;B!I<R!D971E<FUI;F5D(&)Y(&ET<R`@8V]N=&5X="`@86YD
  1143. M"CX@("`@("!A=71O;6%T:6,@='EP92!C;VYV97)S:6]N(&]C8W5R<R!I9B!N
  1144. M965D960N("!&;W(@97AA;7!L92P@=&\*/B`@("`@(&5V86QU871E('1H92!S
  1145. M=&%T96UE;G1S"C$Y,V$Q.#D*/B`@("`@("`@("`@>2`]('@@*R`R("`[("!Z
  1146. M(#T@>"`@(FAE;&QO(@HQ.35C,3DQ"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,
  1147. M87-T(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@("`@("`@("`@("`@("`@(#,*
  1148. M+2TM"CX@("`@("!4:&4@=F%L=64@<W1O<F5D(&EN('9A<FEA8FQE('D@=VEL
  1149. M;"!B92!T>7!E9"!N=6UE<FEC+B`@268@('@*,3DX83$Y-0H^(%9E<G-I;VX@
  1150. M,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@
  1151. M("`@("`@("`@("`S"C(P,F0Q.3@*/"!-05=+*#$I("`@("`@("`@("`@("`@
  1152. M("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR
  1153. M,#8L,C`W8S(P,@H\("`@("`@8V]M92!F<F]M(&EN<'5T(&%N9"!A<F4@='EP
  1154. M:6-A;&QY('-T;W)E9"`@:6X@(&9I96QD<RX@("`H4V5E"CP@("`@("!S96-T
  1155. M:6]N(#0I+@HM+2T*/B!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@
  1156. M0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HR,#DL,C$Q9#(P
  1157. M,PH\("`@("`@5&AE('1Y<&4@;V8@86X@97AP<F5S<VEO;B!I<R!D971E<FUI
  1158. M;F5D(&)Y(&ET<R`@8V]N=&5X="`@86YD"CP@("`@("!A=71O;6%T:6,@='EP
  1159. M92!C;VYV97)S:6]N(&]C8W5R<R!I9B!N965D960N("!&;W(@97AA;7!L92P@
  1160. M=&\*/"`@("`@(&5V86QU871E('1H92!S=&%T96UE;G1S"C(Q,V0R,#0*/"`@
  1161. M("`@("`@("`@>2`]('@@*R`R("`[("!Z(#T@>"`@(FAE;&QO(@HR,35D,C`U
  1162. M"CP@("`@("!4:&4@=F%L=64@<W1O<F5D(&EN('9A<FEA8FQE('D@=VEL;"!B
  1163. M92!T>7!E9"!N=6UE<FEC+B`@268@('@*,C,U+#(T,6,R,C4L,C(W"CP@("`@
  1164. M("!I9B!B;W1H(&]P97)A;F1S(&%R92!S=')I;F<@=&AE(&-O;7!A<FES;VX@
  1165. M(&ES("!S=')I;F<N("`@268*/"`@("`@(&5X86-T;'D@(&]N92!O<&5R86YD
  1166. M(&ES('-T<FEN9R!A;F0@869T97(@=')I;6UI;F<@<W!A8V5S(&%N9`H\("`@
  1167. M("`@=&%B<R!F<F]M("!T:&4@(&9R;VYT("!A;F0@(&)A8VL@('1H92`@<F5M
  1168. M86EN:6YG("!S=')I;F<@(&ES"CP@("`@("!E;G1I<F5L>2`@;G5M97)I8R`@
  1169. M:6X@(&9O<FTL('1H96X@=&AE('-T<FEN9R!I<R!C;VYV97)T960@=&\*/"`@
  1170. M("`@(&YU;6)E<B!A;F0@=&AE(&-O;7!A<FES;VX@:7,@;G5M97)I8SL@;W1H
  1171. M97)W:7-E+"!T:&4@;G5M97)I8PH\("`@("`@;W!E<F%N9"!I<R!C;VYV97)T
  1172. M960@=&\@<W1R:6YG(&%N9"!T:&4@8V]M<&%R:7-O;B!I<R!S=')I;F<N"CP@
  1173. M("`@("!4:&4@<F5S=6QT(&]F(&$@8V]M<&%R:7-O;B!I<R!N=6UE<FEC+"`P
  1174. M(&]R(#$N"BTM+0H^("`@("`@:68@8F]T:"!O<&5R86YD<R!A<F4@<W1R:6YG
  1175. M('1H92!C;VUP87)I<V]N(&ES('-T<FEN9SL@:68@;VYE"CX@("`@("!O<&5R
  1176. M86YD("!I<R`@<W1R:6YG+"!T:&4@;F]N+7-T<FEN9R!O<&5R86YD(&ES(&-O
  1177. M;G9E<G1E9"!A;F0*/B`@("`@('1H92!C;VUP87)I<V]N(&ES('-T<FEN9RX@
  1178. M(%1H92!R97-U;'0@:7,@;G5M97)I8RP@,2!O<B`P+@HR-3=A,C0T+#(T-0H^
  1179. M("`@("`@<F5P;&%C:6YG('X@=VET:"!T:&4@(FYO="!M871C:"(@;W!E<F%T
  1180. M;W(L("%^("P@<F5V97)S97,@=&AE"CX@("`@("!M96%N:6YG+B`@07,@('!A
  1181. M='1E<FXM86-T:6]N('!A:7)S+`HR-3AA,C0W"CX@("`@("`@("`@("]?"'(O
  1182. M('L@7PAA7PAC7PAT7PAI7PAO7PAN('T@("!A;F0@("`D,"!^("]?"'(O('L@
  1183. M7PAA7PAC7PAT7PAI7PAO7PAN('T*,C4Y83(T.2PR-30*/B`@("`@(&%R92!T
  1184. M:&4@<V%M92P@86YD(&9O<B!E86-H("!I;G!U="`@<F5C;W)D("!T:&%T("!M
  1185. M871C:&5S("!?"'(L"CX@("`@("!?"&%?"&-?"'1?"&E?"&]?"&X@(&ES(&5X
  1186. M96-U=&5D+B`@26X@9F%C="P@+U\(<B\@:7,@86X@05=+(&5X<')E<W-I;VX@
  1187. M=&AA=`H^("`@("`@:7,@97%U:79A;&5N="!T;R`H)#`@?B`O7PAR+RD@(&%N
  1188. M>7=H97)E("!E>&-E<'0@('=H96X@(&]N("!T:&4*/B`@("`@(')I9VAT('-I
  1189. M9&4@;V8@82!M871C:"!O<&5R871O<B!O<B!P87-S960@87,@86X@87)G=6UE
  1190. M;G0@=&\@80H^("`@("`@8G5I;'0M:6X@9G5N8W1I;VX@=&AA="!E>'!E8W1S
  1191. M(&$@(')E9W5L87(@(&5X<')E<W-I;VX@(&%R9W4M"CX@("`@("!M96YT+@HR
  1192. M-C%C,C4V+#(U-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
  1193. M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`T"BTM+0H^("`@("`@
  1194. M05=+('5S97,@97AT96YD960@<F5G=6QA<B!E>'!R97-S:6]N<R!A<R!W:71H
  1195. M(%\(95\(9U\(<E\(95\(<"@Q*2X@(%1H90H^("`@("`@<F5G=6QA<B`@97AP
  1196. M<F5S<VEO;B!M971A8VAA<F%C=&5R<RP@:2YE+BP@=&AO<V4@=VET:"!S<&5C
  1197. M:6%L"C(V-&$R-C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
  1198. M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`@-`HR-CAD,C8T"CP@
  1199. M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
  1200. M("`@("`@("`@("`@($U!5TLH,2D*,C<R+#(W,V,R-C@*/"`@("`@(')E<&QA
  1201. M8VEN9R!^('=I=&@@=&AE(")N;W0@;6%T8V@B(&]P97)A=&]R+"`A?B`L(')E
  1202. M=F5R<V5S('1H90H\("`@("`@;65A;FEN9RX@($%S("!P871T97)N+6%C=&EO
  1203. M;B!P86ER<RP*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52
  1204. M($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,C<U9#(V.0H\
  1205. M("`@("`@("`@("`O7PAR+R![(%\(85\(8U\(=%\(:5\(;U\(;B!]("`@86YD
  1206. M("`@)#`@?B`O7PAR+R![(%\(85\(8U\(=%\(:5\(;U\(;B!]"C(W-RPR.#)D
  1207. M,C<P"CP@("`@("!A<F4@=&AE('-A;64L(&%N9"!F;W(@96%C:"`@:6YP=70@
  1208. M(')E8V]R9"`@=&AA="`@;6%T8VAE<R`@7PAR+`H\("`@("`@7PAA7PAC7PAT
  1209. M7PAI7PAO7PAN("!I<R!E>&5C=71E9"X@($EN(&9A8W0L("]?"'(O(&ES(&%N
  1210. M($%72R!E>'!R97-S:6]N('1H870*/"`@("`@(&ES(&5Q=6EV86QE;G0@=&\@
  1211. M*"0P('X@+U\(<B\I("!A;GEW:&5R92`@97AC97!T("!W:&5N("!O;B`@=&AE
  1212. M"CP@("`@("!R:6=H="!S:61E(&]F(&$@;6%T8V@@;W!E<F%T;W(@;W(@<&%S
  1213. M<V5D(&%S(&%N(&%R9W5M96YT('1O(&$*/"`@("`@(&)U:6QT+6EN(&9U;F-T
  1214. M:6]N('1H870@97AP96-T<R!A("!R96=U;&%R("!E>'!R97-S:6]N("!A<F=U
  1215. M+0H\("`@("`@;65N="X*,C@T+#(X-60R-S$*/"`@("`@($%72R!U<V5S(&5X
  1216. M=&5N9&5D(')E9W5L87(@97AP<F5S<VEO;G,@87,@=VET:"!?"&5?"&=?"')?
  1217. M"&5?"'`H,2DN("!4:&4*/"`@("`@(')E9W5L87(@(&5X<')E<W-I;VX@;65T
  1218. M86-H87)A8W1E<G,L(&DN92XL('1H;W-E('=I=&@@<W!E8VEA;`HR.31C,C@P
  1219. M"CP@("`@("`@("`@(%Q?"&,@("`@("`@("`@(&UA=&-H97,@82!C:&%R86-T
  1220. M97(@9&5F:6YE9"`@8GD@('1H92`@<V%M90HM+2T*/B`@("`@("`@("`@(EQ?
  1221. M"&,B("`@("`@("`@;6%T8VAE<R!A(&-H87)A8W1E<B!D969I;F5D("!B>2`@
  1222. M=&AE("!S86UE"C,Q-2PS,39C,S`Q+#,P,@H\("`@("`@("`@("!?"'(Q7PAR
  1223. M,B!M871C:&5S(%\(<C$@9F]L;&]W960@:6UM961I871E;'D@8GD@7PAR,B`@
  1224. M*&-O;F-A=&5N82T*/"`@("`@("`@("`@("`@("!T:6]N*2X*+2TM"CX@("`@
  1225. M("`@("`@(%\(<C%?"'(R("`@("`@("`@;6%T8VAE<R`@7PAR,2`@9F]L;&]W
  1226. M960@(&EM;65D:6%T96QY("!B>2`@7PAR,@H^("`@("`@("`@("`@("`@("`@
  1227. M("`@("`@*&-O;F-A=&5N871I;VXI+@HS,3@L,S$Y8S,P-`H\("`@("`@("`@
  1228. M("!?"'(Q('P@7PAR,@H\("`@("`@("`@("`@("`@(&UA=&-H97,@7PAR,2!O
  1229. M<B!?"'(R("AA;'1E<FYA=&EO;BDN"BTM+0H^("`@("`@("`@("!?"'(Q('P@
  1230. M7PAR,B`@("`@(&UA=&-H97,@7PAR,2!O<B!?"'(R("AA;'1E<FYA=&EO;BDN
  1231. M"C,R,6,S,#8*/"`@("`@("`@("`@7PAR*B`@(&UA=&-H97,@7PAR(')E<&5A
  1232. M=&5D('IE<F\@;W(@;6]R92!T:6UE<RX*+2TM"CX@("`@("`@("`@(%\(<BH@
  1233. M("`@("`@("`@(&UA=&-H97,@7PAR(')E<&5A=&5D('IE<F\@;W(@;6]R92!T
  1234. M:6UE<RX*,S(S8S,P.`H\("`@("`@("`@("!?"'(K("`@;6%T8VAE<R!?"'(@
  1235. M<F5P96%T960@;VYE(&]R(&UO<F4@=&EM97,N"BTM+0H^("`@("`@("`@("!?
  1236. M"'(K("`@("`@("`@("!M871C:&5S(%\(<B!R97!E871E9"!O;F4@;W(@;6]R
  1237. M92!T:6UE<RX*,S(T83,Q,`H^("`@("`@("`@("!?"'(_("`@("`@("`@("!M
  1238. M871C:&5S(%\(<B!Z97)O(&]R(&]N8V4N"C,R-6$S,3(*/B`@("`@("`@("`@
  1239. M*%\(<BD@("`@("`@("`@;6%T8VAE<R!?"'(L('!R;W9I9&EN9R!G<F]U<&EN
  1240. M9RX*,S(W8S,Q-"PS,34*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@8VAA
  1241. M;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`@-0HM+2T*/B`@
  1242. M("`@(%1H92!I;F-R96%S:6YG('!R96-E9&5N8V4@;V8@;W!E<F%T;W)S(&ES
  1243. M(&%L=&5R;F%T:6]N+"`@8V]N+0H^("`@("`@8V%T96YA=&EO;B!A;F0@=6YA
  1244. M<GD@*"HL("L@;W(@/RDN"C,R.&$S,3<*/B`@("`@($9O<B!E>&%M<&QE+`HS
  1245. M,CEA,S$Y+#,R,`H^("`@("`@("`@("`O7EM?82UZ02U:75M?82UZ02U:,"TY
  1246. M72HD+R`@86YD"CX@("`@("`@("`@("]>6RTK73\H6S`M.5TK7"X_?%PN6S`M
  1247. M.5TI6S`M.5TJ*%ME15U;+2M=/ULP+3E=*RD_)"\*,S,P83,R,BPS,C,*/B`@
  1248. M("`@(&%R92!M871C:&5D(&)Y($%72R!I9&5N=&EF:65R<R`@86YD("!!5TL@
  1249. M(&YU;65R:6,@(&-O;G-T86YT<PH^("`@("`@<F5S<&5C=&EV96QY+B`@("!.
  1250. M;W1E("!T:&%T("`N("!H87,@('1O("!B92`@97-C87!E9"`@=&\@(&)E"C,S
  1251. M-&,S,C<*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.
  1252. M1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0HM+2T*/B!697)S:6]N(#$N
  1253. M,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@
  1254. M("`@("`@("`@-0HS,SAD,S,P"CP@("`@("`@("`@(%\(<C\@("!M871C:&5S
  1255. M(%\(<B!Z97)O(&]R(&]N8V4N"C,T,&0S,S$*/"`@("`@("`@("`@*%\(<BD@
  1256. M(&UA=&-H97,@7PAR+"!P<F]V:61I;F<@9W)O=7!I;F<N"C,T,BPS-#-D,S,R
  1257. M"CP@("`@("!4:&4@:6YC<F5A<VEN9R!P<F5C961E;F-E(&]F(&]P97)A=&]R
  1258. M<R!I<R!A;'1E<FYA=&EO;BP@(&-O;BT*/"`@("`@(&-A=&5N871I;VX@86YD
  1259. M('5N87)Y("@J+"`K(&]R(#\I+@HS-#5C,S,T"CP@("`@("!&;W(@97AA;7!L
  1260. M92P*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
  1261. M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*,S0W+#,T.&0S,S4*/"`@
  1262. M("`@("`@("`@+UY;7V$M>D$M6EU;7V$M>D$M6C`M.5TJ)"\@(&%N9`H\("`@
  1263. M("`@("`@("`O7ELM*UT_*%LP+3E=*UPN/WQ<+ELP+3E=*5LP+3E=*BA;945=
  1264. M6RTK73];,"TY72LI/R0O"C,U,"PS-3-D,S,V"CP@("`@("!A<F4@;6%T8VAE
  1265. M9"!B>2!!5TL@:61E;G1I9FEE<G,@(&%N9"`@05=+("!N=6UE<FEC("!C;VYS
  1266. M=&%N=',*/"`@("`@(')E<W!E8W1I=F5L>2X@("!.;W1E("!T:&%T("`N(&AA
  1267. M<R!T;R!B92!E<V-A<&5D('1O(&)E(')E8V]G+0H\("`@("`@;FEZ960@87,@
  1268. M82!D96-I;6%L('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R
  1269. M92`@;F]T"CP@("`@("!S<&5C:6%L(&EN<VED92!C:&%R86-T97(@8VQA<W-E
  1270. M<RX*,S4T83,S."PS-#`*/B`@("`@(')E8V]G;FEZ960@87,@82!D96-I;6%L
  1271. M('!O:6YT+"!A;F0@=&AA="`@;65T86-H87)A8W1E<G,@(&%R90H^("`@("`@
  1272. M;F]T('-P96-I86P@:6YS:61E(&-H87)A8W1E<B!C;&%S<V5S+@H^(`HS.#EA
  1273. M,S<V"CX@("`@("!S=')I;F<N("!&;W(@97AA;7!L92P*,SDP83,W."PS.#`*
  1274. M/B`@("`@("`@("`@96-H;R`R-"`R-$4@?`H^("`@("`@("`@("!M87=K("=[
  1275. M('!R:6YT*"0Q/C$P,"P@)#$^(C$P,"(L("0R/C$P,"P@)#(^(C$P,"(I('TG
  1276. M"CX@("`@("`@("`@(#`@,2`Q(#$*,SDQ83,X,BPS.#0*/B`@("`@("0P(&%N
  1277. M9"`D,B!A<F4@<W1R:6YG(&%N9"`D,2!I<R!N=6UB97(@86YD('-T<FEN9RX@
  1278. M(%1H92!F:7)S=`H^("`@("`@8V]M<&%R:7-O;B`@:7,@(&YU;65R:6,L("!T
  1279. M:&4@<V5C;VYD(&ES('-T<FEN9RP@=&AE('1H:7)D(&ES"CX@("`@("!S=')I
  1280. M;F<@*#$P,"!I<R!C;VYV97)T960@=&\@(C$P,"(I+"!A;F0@=&AE(&QA<W0@
  1281. M:7,@<W1R:6YG+@HS.3-C,S@V+#,X.0H\(%9E<G-I;VX@,2XQ("`@("`@("`@
  1282. M3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@("`V
  1283. M"BTM+0H^("`@-2X@17AP<F5S<VEO;G,@86YD(&]P97)A=&]R<PH^("`@("`@
  1284. M5&AE(&5X<')E<W-I;VX@<WEN=&%X(&ES('-I;6EL87(@=&\@0RX@(%!R:6UA
  1285. M<GD@(&5X<')E<W-I;VYS"CX@("`@("!A<F4@(&YU;65R:6,@8V]N<W1A;G1S
  1286. M+"!S=')I;F<@8V]N<W1A;G1S+"!V87)I86)L97,L(&9I96QD<RP*/B`@("`@
  1287. M(&%R<F%Y<R!A;F0@9G5N8W1I;VYS+B!4:&4@:61E;G1I9FEE<B!F;W(@82`@
  1288. M=F%R:6%B;&4L("!A<G)A>0HS.39A,SDS"CX@5F5R<VEO;B`Q+C$N,B`@("`@
  1289. M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
  1290. M(#8*-#`P9#,Y-@H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
  1291. M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C0P-&,T,#`*/"`@
  1292. M("`@('-T<FEN9RX@($9O<B!E>&%M<&QE+`HM+2T*/B!-05=+*#$I("`@("`@
  1293. M("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@
  1294. M34%72R@Q*0HT,#8L-#`X9#0P,0H\("`@("`@("`@("!E8VAO(#(T(#(T12!\
  1295. M"CP@("`@("`@("`@(&UA=VL@)WL@<')I;G0H)#$^,3`P+"`D,3XB,3`P(BP@
  1296. M)#(^,3`P+"`D,CXB,3`P(BD@?2<*/"`@("`@("`@("`@,"`P(#$@,0HT,3`L
  1297. M-#$S9#0P,@H\("`@("`@)#`@86YD("0R(&%R92!S=')I;F<@86YD("0Q(&ES
  1298. M(&YU;6)E<B!A;F0@<W1R:6YG+B`@5&AE(&9I<G-T"CP@("`@("!A;F0@('-E
  1299. M8V]N9"`@8V]M<&%R:7-O;G,@(&%R92`@;G5M97)I8R`@86YD('1H92!L87-T
  1300. M('1W;R!A<F4*/"`@("`@('-T<FEN9RX@($EN('1H92!S96-O;F0@(C$P,"(@
  1301. M:7,@8V]N=F5R=&5D('1O(#$P,"P@86YD(&EN('1H90H\("`@("`@=&AI<F0@
  1302. M,3`P(&ES(&-O;G9E<G1E9"!T;R`B,3`P(BX*-#$U+#0Q.&0T,#,*/"`@(#4N
  1303. M($5X<')E<W-I;VYS(&%N9"!O<&5R871O<G,*/"`@("`@(%1H92!E>'!R97-S
  1304. M:6]N('-Y;G1A>"!I<R!S:6UI;&%R('1O($,N("!0<FEM87)Y("!E>'!R97-S
  1305. M:6]N<PH\("`@("`@87)E("!N=6UE<FEC(&-O;G-T86YT<RP@<W1R:6YG(&-O
  1306. M;G-T86YT<RP@=F%R:6%B;&5S+"!F:65L9',L"CP@("`@("!A<G)A>7,@86YD
  1307. M(&9U;F-T:6]N<RX@5&AE(&ED96YT:69I97(@9F]R(&$@('9A<FEA8FQE+"`@
  1308. M87)R87D*-#4V830T,BPT-#,*/B`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T
  1309. M:&4@9F]R('-T871E;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H^("`@
  1310. M("`@:6YD97@@;V8@86X@87)R87DN"C0U-V$T-#4*/B`@("`@("`@("`@9F]R
  1311. M("@@7PAV7PAA7PAR(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(
  1312. M=%\(95\(;5\(95\(;E\(=`HT-3EC-#0W+#0T.0H\(%9E<G-I;VX@,2XQ("`@
  1313. M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
  1314. M("`@("`W"BTM+0H^("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C:"!I;F1E
  1315. M>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(=%\(85\(
  1316. M=%\(95\(;5\(95\(;E\(="X@(%1H90H^("`@("`@;W)D97(@('1H870@(%\(
  1317. M=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@7PAA7PAR
  1318. M7PAR7PAA7PAY(&ES(&YO=`H^("`@("`@9&5F:6YE9"X*-#8P830U,2PT-3(*
  1319. M/B`@("`@(%1H92!S=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;
  1320. M7PAE7PAX7PAP7PAR72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?
  1321. M"'!?"')=(&YO="!T;PH^("`@("`@97AI<W0N"C0V,6$T-30L-#4U"CX@("`@
  1322. M("!-=6QT:61I;65N<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I
  1323. M=&@@(&-O;F-A=&5N871I;VX*/B`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN
  1324. M('9A<FEA8FQE(%-50E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?
  1325. M"'(Q+%\(95\(>%\(<%\(<C)=(&ES"C0V-&$T-3D*/B!697)S:6]N(#$N,2XR
  1326. M("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@
  1327. M("`@("`@-PHT-C9D-#8P"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
  1328. M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*-#<P+#0W
  1329. M,60T-C,*/"`@("`@(%1H97)E(&ES(&$@9F]R;2!O9B!T:&4@9F]R('-T871E
  1330. M;65N="!T:&%T("!L;V]P<R`@;W9E<B`@96%C:`H\("`@("`@:6YD97@@;V8@
  1331. M86X@87)R87DN"C0W,V0T-C0*/"`@("`@("`@("`@9F]R("@@7PAV7PAA7PAR
  1332. M(&EN(%\(85\(<E\(<E\(85\(>2`I(%\(<U\(=%\(85\(=%\(95\(;5\(95\(
  1333. M;E\(=`HT-S4L-#<W8S0V-@H\("`@("`@<V5T<R!?"'9?"&%?"'(@=&\@96%C
  1334. M:"!I;F1E>"!O9B!?"&%?"')?"')?"&%?"'D@86YD(&5X96-U=&5S(%\(<U\(
  1335. M=%\(85\(=%\(95\(;5\(95\(;E\(="X@(%1H90H\("`@("`@;W)D97(@('1H
  1336. M870@(%\(=E\(85\(<B`@=')A;G-V97)S97,@('1H92`@:6YD:6-E<R`@;V8@
  1337. M7PAA7PAR7PAR7PAA7PAY(&ES(&YO=`H\("`@("`@9&5F:6YE9"X*+2TM"CX@
  1338. M34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@
  1339. M("`@("`@("`@("`@($U!5TLH,2D*-#<Y+#0X,&0T-C<*/"`@("`@(%1H92!S
  1340. M=&%T96UE;G0L(&1E;&5T92!?"&%?"')?"')?"&%?"'E;7PAE7PAX7PAP7PAR
  1341. M72P@8V%U<V5S(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"')=(&YO="!T
  1342. M;PH\("`@("`@97AI<W0N"C0X,BPT.#-C-#8Y"CP@("`@("!-=6QT:61I;65N
  1343. M<VEO;F%L(&%R<F%Y<R!A<F4@<WEN=&AE<VEZ960@('=I=&@@(&-O;F-A=&5N
  1344. M871I;VX*/"`@("`@('5S:6YG("!T:&4@(&)U:6QT+6EN('9A<FEA8FQE(%-5
  1345. M0E-%4"X@(%\(85\(<E\(<E\(85\(>5M?"&5?"'A?"'!?"'(Q+%\(95\(>%\(
  1346. M<%\(<C)=(&ES"BTM+0H^(`HU,C)A-3`Y+#4Q,`H^("`@("`@("`@("!/4E,@
  1347. M("`@("`@=&5R;6EN871E<R!E86-H(')E8V]R9"!O;B!O=71P=70L(&EN:71I
  1348. M86QL>2`]"CX@("`@("`@("`@("`@("`@("`@("`B7&XB+@HU,C-A-3$R+#4Q
  1349. M,PH^("`@("`@("`@("!23$5.1U1(("`@;&5N9W1H('-E="!B>2!T:&4@;&%S
  1350. M="!C86QL('1O("!T:&4@(&)U:6QT+6EN"CX@("`@("`@("`@("`@("`@("`@
  1351. M("!F=6YC=&EO;BP@;6%T8V@H*2X*-3(U8S4Q-0H\(%9E<G-I;VX@,2XQ("`@
  1352. M("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@
  1353. M("`@("`X"BTM+0H^("`@("`@("`@("!24R`@("`@("`@:6YP=70@<F5C;W)D
  1354. M('-E<&%R871O<BP@:6YI=&EA;&QY(#T@(EQN(BX*-3(V834Q-PH^("`@("`@
  1355. M("`@("!24U1!4E0@("`@:6YD97@@<V5T(&)Y('1H92!L87-T(&-A;&P@=&\@
  1356. M;6%T8V@H*2X*-3(W834Q.2PU,C`*/B`@("`@("`@("`@4U5"4T50("`@('5S
  1357. M960@=&\@8G5I;&0@;75L=&EP;&4@87)R87D@<W5B<V-R:7!T<RP@:6YI+0H^
  1358. M("`@("`@("`@("`@("`@("`@("`@=&EA;&QY(#T@(EPP,S0B+@HU,S)C-3(U
  1359. M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
  1360. M("`@("`@("`@("`@("`@($U!5TLH,2D*+2TM"CX@5F5R<VEO;B`Q+C$N,B`@
  1361. M("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@
  1362. M("`@(#@*-3,V+#4S-V0U,C@*/"`@("`@("`@("`@3U)3("`@("`@('1E<FUI
  1363. M;F%T97,@96%C:"!R96-O<F0@;VX@;W5T<'5T+"!I;FET:6%L;'D@/0H\("`@
  1364. M("`@("`@("`@("`@("`@("`@(EQN(BX*-3,Y+#4T,&0U,CD*/"`@("`@("`@
  1365. M("`@4DQ%3D=42"`@(&QE;F=T:"!S970@8GD@=&AE(&QA<W0@8V%L;"!T;R`@
  1366. M=&AE("!B=6EL="UI;@H\("`@("`@("`@("`@("`@("`@("`@9G5N8W1I;VXL
  1367. M(&UA=&-H*"DN"C4T,F0U,S`*/"`@("`@("`@("`@4E,@("`@("`@(&EN<'5T
  1368. M(')E8V]R9"!S97!A<F%T;W(L(&EN:71I86QL>2`](")<;B(N"C4T-&,U,S(*
  1369. M/"`@("`@("`@("`@4E-405)4("`@(&EN9&5X('-E="!B>2!T:&4@;&%S="!C
  1370. M86QL('1O(&UA=&-H*"DN"BTM+0H^($U!5TLH,2D@("`@("`@("`@("`@("`@
  1371. M("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C4T
  1372. M-BPU-#=D-3,S"CP@("`@("`@("`@(%-50E-%4"`@("!U<V5D('1O(&)U:6QD
  1373. M(&UU;'1I<&QE(&%R<F%Y('-U8G-C<FEP=',L(&EN:2T*/"`@("`@("`@("`@
  1374. M("`@("`@("`@('1I86QL>2`](")<,#,T(BX*-30X834S-0H^(`HU-C4L-38W
  1375. M8S4U,BPU-3,*/"`@("`@("`@("`@;&5N9W1H*%\(<RD@(&QE;F=T:"@I"CP@
  1376. M("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H(&]F('-T<FEN9R!?
  1377. M"',[('=I=&AO=70@(&%N("!A<F=U+0H\("`@("`@("`@("`@("`@(&UE;G0L
  1378. M(')E='5R;G,@=&AE(&QE;F=T:"!O9B`D,"X*+2TM"CX@("`@("`@("`@(&QE
  1379. M;F=T:"A?"',I"CX@("`@("`@("`@("`@("`@4F5T=7)N<R!T:&4@;&5N9W1H
  1380. M(&]F('-T<FEN9R!?"',N"C4X-V$U-S0L-3<U"CX@("`@("`@("`@("`@("`@
  1381. M86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM7PAA7PAT+B`@(%-E92`@=&AE
  1382. M("!D97-C<FEP=&EO;B`@;V8*/B`@("`@("`@("`@("`@("!P<FEN=&8H*2!B
  1383. M96QO=RX*-3@X834W-RPU-SD*/B`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
  1384. M*2`@<W5B*%\(<BQ?"',I"CX@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
  1385. M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/B`@("`@
  1386. M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HU.#EA-3@Q+#4X-`H^("`@
  1387. M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
  1388. M/B`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
  1389. M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CX@("`@("`@("`@("`@("`@:6YD
  1390. M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
  1391. M92!S=69F:7@*/B`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
  1392. M(%\(:2!I<R!R971U<FYE9"X*-3DQ8S4X-BPU.#<*/"!697)S:6]N(#$N,2`@
  1393. M("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@
  1394. M("`@("`@.0HM+2T*/B`@("`@("`@("`@=&]L;W=E<BA?"',I"CX@("`@("`@
  1395. M("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@7PAS('=I=&@@86QL('5P<&5R
  1396. M(&-A<V4@8VAA<F%C=&5R<PHU.31A-3DQ"CX@5F5R<VEO;B`Q+C$N,B`@("`@
  1397. M("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@("`@("`@("`@("`@("`@
  1398. M(#D*-3DX9#4Y-`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
  1399. M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"C8P,BPV,#-C-3DX
  1400. M"CP@("`@("`@("`@("`@("`@86-C;W)D:6YG("!T;R`@7PAF7PAO7PAR7PAM
  1401. M7PAA7PAT+B`@(%-E92`@=&AE("!D97-C<FEP=&EO;B`@;V8*/"`@("`@("`@
  1402. M("`@("`@("!P<FEN=&8H*2!B96QO=RX*+2TM"CX@34%72R@Q*2`@("`@("`@
  1403. M("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!
  1404. M5TLH,2D*-C`U+#8P-V0U.3D*/"`@("`@("`@("`@<W5B*%\(<BQ?"',L7PAT
  1405. M*2`@<W5B*%\(<BQ?"',I"CP@("`@("`@("`@("`@("`@4VEN9VQE('-U8G-T
  1406. M:71U=&EO;BP@<V%M92!A<R!G<W5B*"D@97AC97!T(&%T(&UO<W0*/"`@("`@
  1407. M("`@("`@("`@("!O;F4@<W5B<W1I='5T:6]N+@HV,#DL-C$R9#8P,`H\("`@
  1408. M("`@("`@("!S=6)S='(H7PAS+%\(:2Q?"&XI("!S=6)S='(H7PAS+%\(:2D*
  1409. M/"`@("`@("`@("`@("`@("!2971U<FYS('1H92!S=6)S=')I;F<@;V8@('-T
  1410. M<FEN9R`@7PAS+"`@<W1A<G1I;F<@(&%T"CP@("`@("`@("`@("`@("`@:6YD
  1411. M97@@7PAI+"!O9B!L96YG=&@@7PAN+B`@268@7PAN(&ES(&]M:71T960L('1H
  1412. M92!S=69F:7@*/"`@("`@("`@("`@("`@("!O9B!?"',L('-T87)T:6YG(&%T
  1413. M(%\(:2!I<R!R971U<FYE9"X*-C$T+#8Q-60V,#$*/"`@("`@("`@("`@=&]L
  1414. M;W=E<BA?"',I"CP@("`@("`@("`@("`@("`@4F5T=7)N<R!A(&-O<'D@;V8@
  1415. M7PAS('=I=&@@86QL('5P<&5R(&-A<V4@8VAA<F%C=&5R<PHV-30L-C8W9#8S
  1416. M.0H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z
  1417. M($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$P"CP@"CP@"CP@"CP@
  1418. M"CP@"CP@"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!
  1419. M3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*-C@Q838U
  1420. M-"PV-C<*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA
  1421. M;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q,`H^(`H^(`H^
  1422. M(`H^(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#
  1423. M3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C<R
  1424. M,"PW,S-D-S`U"CP@"CP@"CP@"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T
  1425. M(&-H86YG93H@2F%N(#(R(#$Y.3(@("`@("`@("`@("`@("`@("`@,3$*/"`*
  1426. M/"`*/"`*/"`*/"`*/"`*/"!-05=+*#$I("`@("`@("`@("`@("`@("`@(%53
  1427. M15(@0T]-34%.1%,@("`@("`@("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\
  1428. M(`HW-#AA-S(Q+#<S,PH^(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S
  1429. M="!C:&%N9V4Z($IU;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$Q"CX@
  1430. M"CX@"CX@"CX@"CX@"CX@"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
  1431. M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*
  1432. M/B`*-S@W+#<Y.60W-S$*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA
  1433. M<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q,@H\
  1434. M(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@
  1435. M55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@
  1436. M"CP@"C@Q,6,W.#,*/"`@("`@("`@("`@("`@("!R971U<FYS(#`@86YD("!?
  1437. M"$$@(&ES("!U;F-H86YG960N("`@3W1H97)W:7-E+"`@86QL"BTM+0H^("`@
  1438. M("`@("`@("`@("`@(')E='5R;G,@,"!A;F0@7PA!("!I<R`@<V5T("!E;7!T
  1439. M>2X@("!/=&AE<G=I<V4L("!A;&P*.#$S83<X-BPW.3D*/B`*/B`*/B`*/B!6
  1440. M97)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@,3DY,B`@
  1441. M("`@("`@("`@("`@("`@("`Q,@H^(`H^(`H^(`H^(`H^(`H^(`H^($U!5TLH
  1442. M,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@
  1443. M("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C@U,BPX-C5D.#,W"CP@"CP@"CP@
  1444. M"CP@5F5R<VEO;B`Q+C$@("`@("`@("!,87-T(&-H86YG93H@2F%N(#(R(#$Y
  1445. M.3(@("`@("`@("`@("`@("`@("`@,3,*/"`*/"`*/"`*/"`*/"`*/"`*/"!-
  1446. M05=+*#$I("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@
  1447. M("`@("`@("`@("`@34%72R@Q*0H\(`H\(`H\(`HX-SEA.#4R+#@V-0H^(`H^
  1448. M(`H^(`H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU;"`Q
  1449. M,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$S"CX@"CX@"CX@"CX@"CX@"CX@
  1450. M"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
  1451. M("`@("`@("`@("`@("`@($U!5TLH,2D*/B`*/B`*/B`*.3$W83DP-"PY,#4*
  1452. M/B`@("`@(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE
  1453. M($5.1"!?"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CX@("`@("!S
  1454. M:61E<F5D(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN
  1455. M7PAS(&%R92!E>&5C=71E9"X*.3$X83DP-RPY,3(*/B`@("`@($EN('1H92!E
  1456. M>&%M<&QE+"!T:&4@87-S:6=N;65N="!V/3$@('1A:V5S("!P;&%C92`@869T
  1457. M97(@('1H90H^("`@("`@0D5'24X@(%\(85\(8U\(=%\(:5\(;U\(;E\(<R`@
  1458. M87)E("!E>&5C=71E9"P@(&%N9"`@=&AE(&1A=&$@<&QA8V5D(&EN('8@:7,*
  1459. M/B`@("`@('1Y<&5D(&YU;6)E<B!A;F0@<W1R:6YG+B`@26YP=70@:7,@=&AE
  1460. M;B!R96%D("!F<F]M("!F:6QE("!!+@H^("`@("`@3VX@(&5N9"`@;V8@9FEL
  1461. M92!!+"!T(&ES('-E="!T;R!T:&4@<W1R:6YG(")H96QL;R(L(&%N9"!"(&ES
  1462. M"CX@("`@("!O<&5N960@9F]R(&EN<'5T+B`@3VX@96YD(&]F(&9I;&4@0BP@
  1463. M('1H92`@14Y$("!?"&%?"&-?"'1?"&E?"&]?"&Y?"',@(&%R90H^("`@("`@
  1464. M97AE8W5T960N"CDQ.6$Y,30L.3$U"CX@("`@("!0<F]G<F%M(&9L;W<@870@
  1465. M=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(;B![7PAA7PAC7PAT7PAI7PAO7PAN
  1466. M?2!L979E;"`@8V%N("!B92`@8VAA;F=E9`H^("`@("`@=VET:"!T:&4*.3(Q
  1467. M8SDQ-PH\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
  1468. M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$T"BTM+0H^("`@("`@("`@("!N
  1469. M97AT("`@86YD"CDR-&$Y,C$*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@
  1470. M8VAA;F=E.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-`HY,CAD
  1471. M.3(T"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13
  1472. M("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,R+#DS,V,Y,C@*/"`@("`@
  1473. M(&EF('1H97)E(&ES(&]N92!I="!I<R!O<&5N960L(&5L<V4@=&AE($5.1"!?
  1474. M"'!?"&%?"'1?"'1?"&5?"')?"&X@(&ES("!C;VXM"CP@("`@("!S:61E<F5D
  1475. M(&UA=&-H960@86YD(&%L;"!%3D0@7PAA7PAC7PAT7PAI7PAO7PAN7PAS(&%R
  1476. M92!E>&5C=71E9"X*+2TM"CX@34%72R@Q*2`@("`@("`@("`@("`@("`@("!5
  1477. M4T52($-/34U!3D13("`@("`@("`@("`@("`@("`@($U!5TLH,2D*.3,U+#DT
  1478. M,&0Y,CD*/"`@("`@($EN('1H92!E>&%M<&QE+"!T:&4@87-S:6=N;65N="!V
  1479. M/3$@('1A:V5S("!P;&%C92`@869T97(@('1H90H\("`@("`@0D5'24X@(%\(
  1480. M85\(8U\(=%\(:5\(;U\(;E\(<R`@87)E("!E>&5C=71E9"P@(&%N9"`@=&AE
  1481. M(&1A=&$@<&QA8V5D(&EN('8@:7,*/"`@("`@('1Y<&5D(&YU;6)E<B!A;F0@
  1482. M<W1R:6YG+B`@26YP=70@:7,@=&AE;B!R96%D("!F<F]M("!F:6QE("!!+@H\
  1483. M("`@("`@3VX@(&5N9"`@;V8@9FEL92!!+"!T(&ES('-E="!T;R!T:&4@<W1R
  1484. M:6YG(")H96QL;R(L(&%N9"!"(&ES"CP@("`@("!O<&5N960@9F]R(&EN<'5T
  1485. M+B`@3VX@96YD(&]F(&9I;&4@0BP@('1H92`@14Y$("!?"&%?"&-?"'1?"&E?
  1486. M"&]?"&Y?"',@(&%R90H\("`@("`@97AE8W5T960N"CDT,BPY-#-D.3,P"CP@
  1487. M("`@("!0<F]G<F%M(&9L;W<@870@=&AE(%\(<%\(85\(=%\(=%\(95\(<E\(
  1488. M;B![7PAA7PAC7PAT7PAI7PAO7PAN?2!L979E;"`@8V%N("!B92`@8VAA;F=E
  1489. M9`H\("`@("`@=VET:"!T:&4*.30U9#DS,0H\("`@("`@("`@("!N97AT("`@
  1490. M86YD"CDU-F0Y-#$*/"`*.3@S83DV.2PY-S`*/B`@("`@("`@("`@)#$@?B`O
  1491. M8W)E9&ET?&=A:6XO('L@<W5M("L]("0R('T*/B`@("`@("`@("`@)#$@?B`O
  1492. M9&5B:71\;&]S<R\@('L@<W5M("T]("0R('T*.3@T83DW,@H^("`@("`@("`@
  1493. M("!%3D0@>R!P<FEN="!S=6T@?0HY.#5A.3<T"CX@("`@("`U+B!S;W)T(&$@
  1494. M9FEL92P@8V]M<&%R:6YG(&%S('-T<FEN9PHY.#=C.3<V+#DW-PH\(%9E<G-I
  1495. M;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@
  1496. M("`@("`@("`@("`@(#$U"BTM+0H^("`@("`@("`@("![(&QI;F5;3E)=(#T@
  1497. M)#`@(B(@?2`@(R!M86ME('-U<F4@;V8@8V]M<&%R:7-O;B!T>7!E"CX@("`@
  1498. M("`@("`@("`@("`@("`@("`@("`@("`C(&EN(&-A<V4@<V]M92!L:6YE<R!L
  1499. M;V]K(&YU;65R:6,*.3@X83DW.2PY.#$*/B`@("`@("`@("`@14Y$('L@(&ES
  1500. M;W)T*&QI;F4L($Y2*0H^("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@/#T@
  1501. M3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/B`@("`@("`@("`@?0HY.#EA.3@S
  1502. M"CX@("`@("`@("`@("-I;G-E<G1I;VX@<V]R="!O9B!!6S$N+FY="CDY,F$Y
  1503. M.#<*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E.B!*=6P@,3,@
  1504. M,3DY,B`@("`@("`@("`@("`@("`@("`Q-0HY.31D.3@X"CP@34%72R@Q*2`@
  1505. M("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@("`@("`@("`@("`@
  1506. M("`@($U!5TLH,2D*.3DX+#DY.60Y.3$*/"`@("`@("`@("`@)#$@?B`O8W)E
  1507. M9&ET?&=A:6XO('L@<W5M("L]("0R('T*/"`@("`@("`@("`@)#$@?B`O9&5B
  1508. M:71\;&]S<R\@('L@<W5M("T]("0R('T*,3`P,60Y.3(*/"`@("`@("`@("`@
  1509. M14Y$('L@<')I;G0@<W5M('T*,3`P,V,Y.30*/"`@("`@(#4N('-O<G0@82!F
  1510. M:6QE+"!C;VUP87)I;F<@87,@<W1R:6YG"BTM+0H^($U!5TLH,2D@("`@("`@
  1511. M("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-
  1512. M05=+*#$I"C$P,#4L,3`P-F0Y.34*/"`@("`@("`@("`@>R!L:6YE6TY272`]
  1513. M("0P("(B('T@(",@;6%K92!S=7)E(&]F(&-O;7!A<FES;VX@='EP90H\("`@
  1514. M("`@("`@("`@("`@("`@("`@("`@("`@(R!I;B!C87-E('-O;64@;&EN97,@
  1515. M;&]O:R!N=6UE<FEC"C$P,#@L,3`Q,&0Y.38*/"`@("`@("`@("`@14Y$('L@
  1516. M(&ES;W)T*&QI;F4L($Y2*0H\("`@("`@("`@("`@(&9O<BAI(#T@,2`[(&D@
  1517. M/#T@3E(@.R!I*RLI('!R:6YT(&QI;F5;:5T*/"`@("`@("`@("`@?0HQ,#$R
  1518. M9#DY-PH\("`@("`@("`@("`C:6YS97)T:6]N('-O<G0@;V8@05LQ+BYN70HQ
  1519. M,#(V9#$P,3`*/"`*,3`U,"PQ,#8S9#$P,S,*/"`*/"`*/"`*/"!697)S:6]N
  1520. M(#$N,2`@("`@("`@($QA<W0@8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@
  1521. M("`@("`@("`@("`Q-@H\(`H\(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@
  1522. M("`@("`@("`@("`@("`@55-%4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@
  1523. M("!-05=+*#$I"CP@"CP@"CP@"C$P.#!A,3`U,2PQ,#8S"CX@"CX@"CX@5F5R
  1524. M<VEO;B`Q+C$N,B`@("`@("!,87-T(&-H86YG93H@2G5L(#$S(#$Y.3(@("`@
  1525. M("`@("`@("`@("`@("`@,38*/B`*/B`*/B`*/B`*/B`*/B`*/B!-05=+*#$I
  1526. M("`@("`@("`@("`@("`@("`@(%5315(@0T]-34%.1%,@("`@("`@("`@("`@
  1527. M("`@("`@34%72R@Q*0H^(`H^(`H^(`HQ,3$U+#$Q,CED,3`Y-PH\(`H\(`H\
  1528. M(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@("`@3&%S="!C:&%N9V4Z($IA;B`R
  1529. M,B`Q.3DR("`@("`@("`@("`@("`@("`@(#$W"CP@"CP@"CP@"CP@"CP@"CP@
  1530. M"CP@34%72R@Q*2`@("`@("`@("`@("`@("`@("!54T52($-/34U!3D13("`@
  1531. M("`@("`@("`@("`@("`@($U!5TLH,2D*/"`*/"`*/"`*,3$T-V$Q,3$V+#$Q
  1532. M,CD*/B`*/B`*/B`*/B!697)S:6]N(#$N,2XR("`@("`@($QA<W0@8VAA;F=E
  1533. M.B!*=6P@,3,@,3DY,B`@("`@("`@("`@("`@("`@("`Q-PH^(`H^(`H^(`H^
  1534. M(`H^(`H^(`H^($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%4B!#3TU-
  1535. M04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CX@"CX@"CX@"C$Q-C-D
  1536. M,3$T-`H\(`HQ,38U8S$Q-#8*/"`@("`@(%\(95\(9U\(<E\(95\(<"`H,2D*
  1537. M+2TM"CX@("`@("!?"&5?"&=?"')?"&5?"'`H,2D*,3$W.2PQ,3DU9#$Q-3D*
  1538. M/"`*/"`*/"`*/"`*/"`*/"`*/"!697)S:6]N(#$N,2`@("`@("`@($QA<W0@
  1539. M8VAA;F=E.B!*86X@,C(@,3DY,B`@("`@("`@("`@("`@("`@("`Q.`H\(`H\
  1540. M(`H\(`H\(`H\(`H\(`H\($U!5TLH,2D@("`@("`@("`@("`@("`@("`@55-%
  1541. M4B!#3TU-04Y$4R`@("`@("`@("`@("`@("`@("!-05=+*#$I"CP@"CP@"CP@
  1542. M"C$R,3!D,3$W,PH\(`HQ,C(R+#$R-3%C,3$X-0H\(`H\(`H\(`H\(`H\(`H\
  1543. M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\
  1544. M(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(`H\(%9E<G-I;VX@,2XQ("`@("`@
  1545. M("`@3&%S="!C:&%N9V4Z($IA;B`R,B`Q.3DR("`@("`@("`@("`@("`@("`@
  1546. M(#$Y"BTM+0H^(%9E<G-I;VX@,2XQ+C(@("`@("`@3&%S="!C:&%N9V4Z($IU
  1547. ?;"`Q,R`Q.3DR("`@("`@("`@("`@("`@("`@(#$X"F%S
  1548. `
  1549. end
  1550. SHAR_EOF
  1551. echo 'uudecoding file doc.diff' &&
  1552. uudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
  1553. chmod 0644 doc.diff ||
  1554. echo 'restore of doc.diff failed'
  1555. Wc_c="`wc -c < 'doc.diff'`"
  1556. test 22396 -eq "$Wc_c" ||
  1557.     echo 'doc.diff: original size 22396, current size' "$Wc_c"
  1558. rm -f _shar_wnt_.tmp
  1559. fi
  1560. rm -f _shar_seq_.tmp
  1561. echo You have unpacked the last part
  1562. exit 0
  1563.  
  1564. exit 0 # Just in case...
  1565.